{
  "_format": "hh-sol-artifact-1",
  "contractName": "ModuleBaseV2Mock",
  "sourceName": "contracts/mocks/protocol/lib/ModuleBaseV2Mock.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IController",
          "name": "_controller",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "controller",
      "outputs": [
        {
          "internalType": "contract IController",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        }
      ],
      "name": "initializeModuleOnSet",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "removeModule",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "removed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_integrationName",
          "type": "string"
        }
      ],
      "name": "testGetAndValidateAdapter",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_integrationHash",
          "type": "bytes32"
        }
      ],
      "name": "testGetAndValidateAdapterWithHash",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_feeIndex",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_quantity",
          "type": "uint256"
        }
      ],
      "name": "testGetModuleFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_toCheck",
          "type": "address"
        }
      ],
      "name": "testIsSetManager",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        }
      ],
      "name": "testIsSetPendingInitialization",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        }
      ],
      "name": "testIsSetValidAndInitialized",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        }
      ],
      "name": "testOnlyManagerAndValidSet",
      "outputs": [],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        }
      ],
      "name": "testOnlyModule",
      "outputs": [],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        }
      ],
      "name": "testOnlySetManager",
      "outputs": [],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        }
      ],
      "name": "testOnlyValidAndInitializedSet",
      "outputs": [],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        }
      ],
      "name": "testOnlyValidInitialization",
      "outputs": [],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_component",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_feeQuantity",
          "type": "uint256"
        }
      ],
      "name": "testPayProtocolFeeFromSetToken",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_quantity",
          "type": "uint256"
        }
      ],
      "name": "testTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5060405161184b38038061184b8339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b03199092169190911790556117e6806100656000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806392a11a35116100a2578063dedd3e1e11610071578063dedd3e1e146102f3578063eb0932a214610319578063f631bc841461034e578063f77c4791146103f4578063fe4445fd146103fc5761010b565b806392a11a3514610245578063b20f5f721461026b578063c380abcc14610291578063d6409d94146102cd5761010b565b8063401b880f116100de578063401b880f146101bb578063649979b6146101e1578063847ef08d146102075780638feaf4db1461020f5761010b565b80632487451e146101105780632bc4d18d146101495780633107ee4f1461018b5780633e55ea0314610193575b600080fd5b61012d6004803603602081101561012657600080fd5b5035610422565b604080516001600160a01b039092168252519081900360200190f35b6101776004803603604081101561015f57600080fd5b506001600160a01b0381358116916020013516610433565b604080519115158252519081900360200190f35b610177610446565b6101b9600480360360208110156101a957600080fd5b50356001600160a01b0316610456565b005b610177600480360360208110156101d157600080fd5b50356001600160a01b0316610467565b6101b9600480360360208110156101f757600080fd5b50356001600160a01b0316610472565b6101b9610480565b6101b96004803603606081101561022557600080fd5b506001600160a01b03813581169160208101359091169060400135610495565b6101776004803603602081101561025b57600080fd5b50356001600160a01b03166104a0565b6101b96004803603602081101561028157600080fd5b50356001600160a01b03166104ab565b6101b9600480360360808110156102a757600080fd5b506001600160a01b038135811691602081013582169160408201351690606001356104b5565b6101b9600480360360208110156102e357600080fd5b50356001600160a01b03166104c7565b6101b96004803603602081101561030957600080fd5b50356001600160a01b031661051d565b61033c6004803603604081101561032f57600080fd5b5080359060200135610527565b60408051918252519081900360200190f35b61012d6004803603602081101561036457600080fd5b81019060208101813564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610533945050505050565b61012d61053e565b6101b96004803603602081101561041257600080fd5b50356001600160a01b031661054d565b600061042d82610557565b92915050565b600061043f838361064d565b9392505050565b600054600160a01b900460ff1681565b803361046282826106cf565b505050565b600061042d8261072a565b8061047c816107a6565b5050565b6000805460ff60a01b1916600160a01b179055565b61046283838361092c565b600061042d826109c7565b8061047c81610a8e565b6104c184848484610b2d565b50505050565b806001600160a01b0316630ffe0f1e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561050257600080fd5b505af1158015610516573d6000803e3d6000fd5b5050505050565b8061047c81610b39565b600061043f8383610c47565b600061042d82610cdf565b6000546001600160a01b031681565b8061047c81610ae9565b60008054819061056f906001600160a01b0316610cf6565b6001600160a01b031663e6d642c530856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b1580156105cc57600080fd5b505afa1580156105e0573d6000803e3d6000fd5b505050506040513d60208110156105f657600080fd5b505190506001600160a01b03811661042d576040805162461bcd60e51b815260206004820152601560248201527426bab9ba103132903b30b634b21030b230b83a32b960591b604482015290519081900360640190fd5b6000816001600160a01b0316836001600160a01b031663481c6a756040518163ffffffff1660e01b815260040160206040518083038186803b15801561069257600080fd5b505afa1580156106a6573d6000803e3d6000fd5b505050506040513d60208110156106bc57600080fd5b50516001600160a01b0316149392505050565b6106d9828261064d565b61047c576040805162461bcd60e51b815260206004820152601c60248201527f4d7573742062652074686520536574546f6b656e206d616e6167657200000000604482015290519081900360640190fd5b604080516353bae5f760e01b815230600482015290516000916001600160a01b038416916353bae5f791602480820192602092909190829003018186803b15801561077457600080fd5b505afa158015610788573d6000803e3d6000fd5b505050506040513d602081101561079e57600080fd5b505192915050565b600260408051631ade272960e11b815233600482015290516001600160a01b038416916335bc4e52916024808301926020929190829003018186803b1580156107ee57600080fd5b505afa158015610802573d6000803e3d6000fd5b505050506040513d602081101561081857600080fd5b5051600281111561082557fe5b14610877576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920746865206d6f64756c652063616e2063616c6c0000000000000000604482015290519081900360640190fd5b600054604080516342f6e38960e01b815233600482015290516001600160a01b03909216916342f6e38991602480820192602092909190829003018186803b1580156108c257600080fd5b505afa1580156108d6573d6000803e3d6000fd5b505050506040513d60208110156108ec57600080fd5b50516109295760405162461bcd60e51b81526004018080602001828103825260248152602001806117406024913960400191505060405180910390fd5b50565b801561046257610462826000809054906101000a90046001600160a01b03166001600160a01b031663469048406040518163ffffffff1660e01b815260040160206040518083038186803b15801561098357600080fd5b505afa158015610997573d6000803e3d6000fd5b505050506040513d60208110156109ad57600080fd5b50516001600160a01b03861691908463ffffffff610d3d16565b6000805460408051631d3af8fb60e21b81526001600160a01b038581166004830152915191909216916374ebe3ec916024808301926020929190829003018186803b158015610a1557600080fd5b505afa158015610a29573d6000803e3d6000fd5b505050506040513d6020811015610a3f57600080fd5b5051801561042d5750604080516335fc6c9f60e21b815230600482015290516001600160a01b0384169163d7f1b27c916024808301926020929190829003018186803b15801561077457600080fd5b610a98813361064d565b610ae9576040805162461bcd60e51b815260206004820152601c60248201527f4d7573742062652074686520536574546f6b656e206d616e6167657200000000604482015290519081900360640190fd5b610af2816109c7565b6109295760405162461bcd60e51b81526004018080602001828103825260288152602001806116f76028913960400191505060405180910390fd5b6104c184848484610ec6565b60005460408051631d3af8fb60e21b81526001600160a01b038481166004830152915191909216916374ebe3ec916024808301926020929190829003018186803b158015610b8657600080fd5b505afa158015610b9a573d6000803e3d6000fd5b505050506040513d6020811015610bb057600080fd5b5051610bed5760405162461bcd60e51b81526004018080602001828103825260238152602001806117646023913960400191505060405180910390fd5b610bf68161072a565b610929576040805162461bcd60e51b815260206004820152601e60248201527f4d7573742062652070656e64696e6720696e697469616c697a6174696f6e0000604482015290519081900360640190fd5b600080546040805163792aa04f60e01b815230600482015260248101869052905183926001600160a01b03169163792aa04f916044808301926020929190829003018186803b158015610c9957600080fd5b505afa158015610cad573d6000803e3d6000fd5b505050506040513d6020811015610cc357600080fd5b50519050610cd7838263ffffffff610ff416565b949350505050565b600080610ceb8361101e565b905061043f81610557565b6000816001600160a01b031663e765ced660006040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561077457600080fd5b80156104c1576000836001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610d9b57600080fd5b505afa158015610daf573d6000803e3d6000fd5b505050506040513d6020811015610dc557600080fd5b50519050610dd585858585611029565b6000846001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610e2d57600080fd5b505afa158015610e41573d6000803e3d6000fd5b505050506040513d6020811015610e5757600080fd5b50519050610e6b828463ffffffff61122616565b8114610ebe576040805162461bcd60e51b815260206004820152601d60248201527f496e76616c696420706f7374207472616e736665722062616c616e6365000000604482015290519081900360640190fd5b505050505050565b80156104c1576000846001600160a01b03166370a08231846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610f2457600080fd5b505afa158015610f38573d6000803e3d6000fd5b505050506040513d6020811015610f4e57600080fd5b50519050610f5e85858585611268565b6000856001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610fb657600080fd5b505afa158015610fca573d6000803e3d6000fd5b505050506040513d6020811015610fe057600080fd5b50519050610e6b828463ffffffff6112c216565b600061043f670de0b6b3a7640000611012858563ffffffff61131c16565b9063ffffffff61137516565b805160209091012090565b80156104c157604080516001600160a01b038085166024808401919091526044808401869052845180850382018152606494850186526020810180516001600160e01b031663a9059cbb60e01b17815295516347b7819960e11b8152898516600482019081526000948201859052606093820193845282519682019690965281519196948b1695638f6f0332958b959489949293909260849091019190808383895b838110156110e35781810151838201526020016110cb565b50505050905090810190601f1680156111105780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561113157600080fd5b505af1158015611145573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561116e57600080fd5b810190808051604051939291908464010000000082111561118e57600080fd5b9083019060208201858111156111a357600080fd5b82516401000000008111828201881017156111bd57600080fd5b82525081516020918201929091019080838360005b838110156111ea5781810151838201526020016111d2565b50505050905090810190601f1680156112175780820380516001836020036101000a031916815260200191505b50604052505050505050505050565b600061043f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113b7565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526104c190859061144e565b60008282018381101561043f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008261132b5750600061042d565b8282028284828161133857fe5b041461043f5760405162461bcd60e51b815260040180806020018281038252602181526020018061171f6021913960400191505060405180910390fd5b600061043f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114ff565b600081848411156114465760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561140b5781810151838201526020016113f3565b50505050905090810190601f1680156114385780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60606114a3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166115649092919063ffffffff16565b805190915015610462578080602001905160208110156114c257600080fd5b50516104625760405162461bcd60e51b815260040180806020018281038252602a815260200180611787602a913960400191505060405180910390fd5b6000818361154e5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561140b5781810151838201526020016113f3565b50600083858161155a57fe5b0495945050505050565b6060610cd78484600085856115788561168a565b6115c9576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106116085780518252601f1990920191602091820191016115e9565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461166a576040519150601f19603f3d011682016040523d82523d6000602084013e61166f565b606091505b509150915061167f828286611690565b979650505050505050565b3b151590565b6060831561169f57508161043f565b8251156116af5782518084602001fd5b60405162461bcd60e51b815260206004820181815284516024840152845185939192839260440191908501908083836000831561140b5781810151838201526020016113f356fe4d75737420626520612076616c696420616e6420696e697469616c697a656420536574546f6b656e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774d6f64756c65206d75737420626520656e61626c6564206f6e20636f6e74726f6c6c65724d75737420626520636f6e74726f6c6c65722d656e61626c656420536574546f6b656e5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122016a9b65b942bf8e026b036567448c2a02150dc8bfa4d20b21ff4f2a6d82af63564736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806392a11a35116100a2578063dedd3e1e11610071578063dedd3e1e146102f3578063eb0932a214610319578063f631bc841461034e578063f77c4791146103f4578063fe4445fd146103fc5761010b565b806392a11a3514610245578063b20f5f721461026b578063c380abcc14610291578063d6409d94146102cd5761010b565b8063401b880f116100de578063401b880f146101bb578063649979b6146101e1578063847ef08d146102075780638feaf4db1461020f5761010b565b80632487451e146101105780632bc4d18d146101495780633107ee4f1461018b5780633e55ea0314610193575b600080fd5b61012d6004803603602081101561012657600080fd5b5035610422565b604080516001600160a01b039092168252519081900360200190f35b6101776004803603604081101561015f57600080fd5b506001600160a01b0381358116916020013516610433565b604080519115158252519081900360200190f35b610177610446565b6101b9600480360360208110156101a957600080fd5b50356001600160a01b0316610456565b005b610177600480360360208110156101d157600080fd5b50356001600160a01b0316610467565b6101b9600480360360208110156101f757600080fd5b50356001600160a01b0316610472565b6101b9610480565b6101b96004803603606081101561022557600080fd5b506001600160a01b03813581169160208101359091169060400135610495565b6101776004803603602081101561025b57600080fd5b50356001600160a01b03166104a0565b6101b96004803603602081101561028157600080fd5b50356001600160a01b03166104ab565b6101b9600480360360808110156102a757600080fd5b506001600160a01b038135811691602081013582169160408201351690606001356104b5565b6101b9600480360360208110156102e357600080fd5b50356001600160a01b03166104c7565b6101b96004803603602081101561030957600080fd5b50356001600160a01b031661051d565b61033c6004803603604081101561032f57600080fd5b5080359060200135610527565b60408051918252519081900360200190f35b61012d6004803603602081101561036457600080fd5b81019060208101813564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610533945050505050565b61012d61053e565b6101b96004803603602081101561041257600080fd5b50356001600160a01b031661054d565b600061042d82610557565b92915050565b600061043f838361064d565b9392505050565b600054600160a01b900460ff1681565b803361046282826106cf565b505050565b600061042d8261072a565b8061047c816107a6565b5050565b6000805460ff60a01b1916600160a01b179055565b61046283838361092c565b600061042d826109c7565b8061047c81610a8e565b6104c184848484610b2d565b50505050565b806001600160a01b0316630ffe0f1e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561050257600080fd5b505af1158015610516573d6000803e3d6000fd5b5050505050565b8061047c81610b39565b600061043f8383610c47565b600061042d82610cdf565b6000546001600160a01b031681565b8061047c81610ae9565b60008054819061056f906001600160a01b0316610cf6565b6001600160a01b031663e6d642c530856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b1580156105cc57600080fd5b505afa1580156105e0573d6000803e3d6000fd5b505050506040513d60208110156105f657600080fd5b505190506001600160a01b03811661042d576040805162461bcd60e51b815260206004820152601560248201527426bab9ba103132903b30b634b21030b230b83a32b960591b604482015290519081900360640190fd5b6000816001600160a01b0316836001600160a01b031663481c6a756040518163ffffffff1660e01b815260040160206040518083038186803b15801561069257600080fd5b505afa1580156106a6573d6000803e3d6000fd5b505050506040513d60208110156106bc57600080fd5b50516001600160a01b0316149392505050565b6106d9828261064d565b61047c576040805162461bcd60e51b815260206004820152601c60248201527f4d7573742062652074686520536574546f6b656e206d616e6167657200000000604482015290519081900360640190fd5b604080516353bae5f760e01b815230600482015290516000916001600160a01b038416916353bae5f791602480820192602092909190829003018186803b15801561077457600080fd5b505afa158015610788573d6000803e3d6000fd5b505050506040513d602081101561079e57600080fd5b505192915050565b600260408051631ade272960e11b815233600482015290516001600160a01b038416916335bc4e52916024808301926020929190829003018186803b1580156107ee57600080fd5b505afa158015610802573d6000803e3d6000fd5b505050506040513d602081101561081857600080fd5b5051600281111561082557fe5b14610877576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920746865206d6f64756c652063616e2063616c6c0000000000000000604482015290519081900360640190fd5b600054604080516342f6e38960e01b815233600482015290516001600160a01b03909216916342f6e38991602480820192602092909190829003018186803b1580156108c257600080fd5b505afa1580156108d6573d6000803e3d6000fd5b505050506040513d60208110156108ec57600080fd5b50516109295760405162461bcd60e51b81526004018080602001828103825260248152602001806117406024913960400191505060405180910390fd5b50565b801561046257610462826000809054906101000a90046001600160a01b03166001600160a01b031663469048406040518163ffffffff1660e01b815260040160206040518083038186803b15801561098357600080fd5b505afa158015610997573d6000803e3d6000fd5b505050506040513d60208110156109ad57600080fd5b50516001600160a01b03861691908463ffffffff610d3d16565b6000805460408051631d3af8fb60e21b81526001600160a01b038581166004830152915191909216916374ebe3ec916024808301926020929190829003018186803b158015610a1557600080fd5b505afa158015610a29573d6000803e3d6000fd5b505050506040513d6020811015610a3f57600080fd5b5051801561042d5750604080516335fc6c9f60e21b815230600482015290516001600160a01b0384169163d7f1b27c916024808301926020929190829003018186803b15801561077457600080fd5b610a98813361064d565b610ae9576040805162461bcd60e51b815260206004820152601c60248201527f4d7573742062652074686520536574546f6b656e206d616e6167657200000000604482015290519081900360640190fd5b610af2816109c7565b6109295760405162461bcd60e51b81526004018080602001828103825260288152602001806116f76028913960400191505060405180910390fd5b6104c184848484610ec6565b60005460408051631d3af8fb60e21b81526001600160a01b038481166004830152915191909216916374ebe3ec916024808301926020929190829003018186803b158015610b8657600080fd5b505afa158015610b9a573d6000803e3d6000fd5b505050506040513d6020811015610bb057600080fd5b5051610bed5760405162461bcd60e51b81526004018080602001828103825260238152602001806117646023913960400191505060405180910390fd5b610bf68161072a565b610929576040805162461bcd60e51b815260206004820152601e60248201527f4d7573742062652070656e64696e6720696e697469616c697a6174696f6e0000604482015290519081900360640190fd5b600080546040805163792aa04f60e01b815230600482015260248101869052905183926001600160a01b03169163792aa04f916044808301926020929190829003018186803b158015610c9957600080fd5b505afa158015610cad573d6000803e3d6000fd5b505050506040513d6020811015610cc357600080fd5b50519050610cd7838263ffffffff610ff416565b949350505050565b600080610ceb8361101e565b905061043f81610557565b6000816001600160a01b031663e765ced660006040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561077457600080fd5b80156104c1576000836001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610d9b57600080fd5b505afa158015610daf573d6000803e3d6000fd5b505050506040513d6020811015610dc557600080fd5b50519050610dd585858585611029565b6000846001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610e2d57600080fd5b505afa158015610e41573d6000803e3d6000fd5b505050506040513d6020811015610e5757600080fd5b50519050610e6b828463ffffffff61122616565b8114610ebe576040805162461bcd60e51b815260206004820152601d60248201527f496e76616c696420706f7374207472616e736665722062616c616e6365000000604482015290519081900360640190fd5b505050505050565b80156104c1576000846001600160a01b03166370a08231846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610f2457600080fd5b505afa158015610f38573d6000803e3d6000fd5b505050506040513d6020811015610f4e57600080fd5b50519050610f5e85858585611268565b6000856001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610fb657600080fd5b505afa158015610fca573d6000803e3d6000fd5b505050506040513d6020811015610fe057600080fd5b50519050610e6b828463ffffffff6112c216565b600061043f670de0b6b3a7640000611012858563ffffffff61131c16565b9063ffffffff61137516565b805160209091012090565b80156104c157604080516001600160a01b038085166024808401919091526044808401869052845180850382018152606494850186526020810180516001600160e01b031663a9059cbb60e01b17815295516347b7819960e11b8152898516600482019081526000948201859052606093820193845282519682019690965281519196948b1695638f6f0332958b959489949293909260849091019190808383895b838110156110e35781810151838201526020016110cb565b50505050905090810190601f1680156111105780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561113157600080fd5b505af1158015611145573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561116e57600080fd5b810190808051604051939291908464010000000082111561118e57600080fd5b9083019060208201858111156111a357600080fd5b82516401000000008111828201881017156111bd57600080fd5b82525081516020918201929091019080838360005b838110156111ea5781810151838201526020016111d2565b50505050905090810190601f1680156112175780820380516001836020036101000a031916815260200191505b50604052505050505050505050565b600061043f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113b7565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526104c190859061144e565b60008282018381101561043f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008261132b5750600061042d565b8282028284828161133857fe5b041461043f5760405162461bcd60e51b815260040180806020018281038252602181526020018061171f6021913960400191505060405180910390fd5b600061043f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114ff565b600081848411156114465760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561140b5781810151838201526020016113f3565b50505050905090810190601f1680156114385780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60606114a3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166115649092919063ffffffff16565b805190915015610462578080602001905160208110156114c257600080fd5b50516104625760405162461bcd60e51b815260040180806020018281038252602a815260200180611787602a913960400191505060405180910390fd5b6000818361154e5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561140b5781810151838201526020016113f3565b50600083858161155a57fe5b0495945050505050565b6060610cd78484600085856115788561168a565b6115c9576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106116085780518252601f1990920191602091820191016115e9565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461166a576040519150601f19603f3d011682016040523d82523d6000602084013e61166f565b606091505b509150915061167f828286611690565b979650505050505050565b3b151590565b6060831561169f57508161043f565b8251156116af5782518084602001fd5b60405162461bcd60e51b815260206004820181815284516024840152845185939192839260440191908501908083836000831561140b5781810151838201526020016113f356fe4d75737420626520612076616c696420616e6420696e697469616c697a656420536574546f6b656e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774d6f64756c65206d75737420626520656e61626c6564206f6e20636f6e74726f6c6c65724d75737420626520636f6e74726f6c6c65722d656e61626c656420536574546f6b656e5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122016a9b65b942bf8e026b036567448c2a02150dc8bfa4d20b21ff4f2a6d82af63564736f6c634300060a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
