UNPKG

@materia-dex/materia-contracts-proxy

Version:

Proxy contract for the Materia protocol

351 lines 193 kB
{ "abi": [ { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "wrapper", "type": "address" } ], "name": "_wrapEth", "outputs": [ { "internalType": "address", "name": "interoperable", "type": "address" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC1155BatchReceived", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "onERC1155Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountOut", "type": "uint256" }, { "internalType": "address[]", "name": "path", "type": "address[]" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "swapETHForExactTokens", "outputs": [ { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountOutMin", "type": "uint256" }, { "internalType": "address[]", "name": "path", "type": "address[]" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "swapExactETHForTokens", "outputs": [ { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "uint256", "name": "amountOutMin", "type": "uint256" }, { "internalType": "address[]", "name": "path", "type": "address[]" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "swapExactTokensForETH", "outputs": [ { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "uint256", "name": "amountOutMin", "type": "uint256" }, { "internalType": "address[]", "name": "path", "type": "address[]" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "swapExactTokensForTokens", "outputs": [ { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountOut", "type": "uint256" }, { "internalType": "uint256", "name": "amountInMax", "type": "uint256" }, { "internalType": "address[]", "name": "path", "type": "address[]" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "swapTokensForExactETH", "outputs": [ { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountOut", "type": "uint256" }, { "internalType": "uint256", "name": "amountInMax", "type": "uint256" }, { "internalType": "address[]", "name": "path", "type": "address[]" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "swapTokensForExactTokens", "outputs": [ { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" } ], "evm": { "bytecode": { "object": "608060405234801561001057600080fd5b506152ef806100206000396000f3fe6080604052600436106100b15760003560e01c80638803dbee11610069578063f23a6e611161004e578063f23a6e61146101b9578063f717cd6d146101d9578063fb3bdb41146101f9576100b1565b80638803dbee1461016c578063bc197c811461018c576100b1565b806338ed17391161009a57806338ed1739146101195780634a25d94a146101395780637ff36ab514610159576100b1565b806301ffc9a7146100b657806318cbafe5146100ec575b600080fd5b3480156100c257600080fd5b506100d66100d13660046146ed565b61020c565b6040516100e39190614b8a565b60405180910390f35b3480156100f857600080fd5b5061010c61010736600461499b565b610214565b6040516100e39190614b46565b34801561012557600080fd5b5061010c61013436600461499b565b6105b8565b34801561014557600080fd5b5061010c61015436600461499b565b610b0c565b61010c6101673660046148a3565b611115565b34801561017857600080fd5b5061010c61018736600461499b565b611549565b34801561019857600080fd5b506101ac6101a7366004614598565b611c42565b6040516100e39190614b95565b3480156101c557600080fd5b506101ac6101d4366004614653565b611c49565b6101ec6101e7366004614793565b611d3c565b6040516100e39190614adb565b61010c6102073660046148a3565b611db9565b60005b919050565b606081428110156102405760405162461bcd60e51b815260040161023790614dc6565b60405180910390fd5b6000306001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561027b57600080fd5b505afa15801561028f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b3919061457c565b90506000306001600160a01b0316631b5f58c86040518163ffffffff1660e01b815260040160206040518083038186803b1580156102f057600080fd5b505afa158015610304573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610328919061457c565b90506000306001600160a01b031663be745fff6040518163ffffffff1660e01b815260040160206040518083038186803b15801561036557600080fd5b505afa158015610379573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039d919061477b565b90506103d3886000815181106103c357634e487b7160e01b600052603260045260246000fd5b602002602001015133308d612293565b610406886000815181106103f757634e487b7160e01b600052603260045260246000fd5b60200260200101518b84612398565b8960008151811061042757634e487b7160e01b600052603260045260246000fd5b60200260200101819c50826001600160a01b03166001600160a01b03168152505050610454838b8a612694565b94508885600187516104669190615200565b8151811061048457634e487b7160e01b600052603260045260246000fd5b602002602001015110156104aa5760405162461bcd60e51b815260040161023790614e5a565b61055f886000815181106104ce57634e487b7160e01b600052603260045260246000fd5b6020026020010151610531858b6000815181106104fb57634e487b7160e01b600052603260045260246000fd5b60200260200101518c60018151811061052457634e487b7160e01b600052603260045260246000fd5b6020026020010151612843565b8760008151811061055257634e487b7160e01b600052603260045260246000fd5b60200260200101516128b3565b61056b83868a306129b5565b6105ab81866001885161057e9190615200565b8151811061059c57634e487b7160e01b600052603260045260246000fd5b6020026020010151848a612ba2565b5050505095945050505050565b606081428110156105db5760405162461bcd60e51b815260040161023790614dc6565b6000306001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561061657600080fd5b505afa15801561062a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064e919061457c565b90506000306001600160a01b031663f4734b0c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561068b57600080fd5b505afa15801561069f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c3919061457c565b90506000306001600160a01b0316631b5f58c86040518163ffffffff1660e01b815260040160206040518083038186803b15801561070057600080fd5b505afa158015610714573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610738919061457c565b905061075e886000815181106103c357634e487b7160e01b600052603260045260246000fd5b6107918860008151811061078257634e487b7160e01b600052603260045260246000fd5b60200260200101518b83612398565b896000815181106107b257634e487b7160e01b600052603260045260246000fd5b60200260200101819c50826001600160a01b03166001600160a01b0316815250505060008060006108178b60018d516107eb9190615200565b8151811061080957634e487b7160e01b600052603260045260246000fd5b602002602001015185612c2b565b90935091508215801561087057508a60018c516108349190615200565b8151811061085257634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316856001600160a01b031614155b1561099c578a60018c516108849190615200565b815181106108a257634e487b7160e01b600052603260045260246000fd5b602002602001015190506108b6818d612d48565b6040517f0c0f6b71000000000000000000000000000000000000000000000000000000008152909c506001600160a01b03851690630c0f6b71906108fe908590600401614fdf565b60206040518083038186803b15801561091657600080fd5b505afa15801561092a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094e919061457c565b8b60018d5161095d9190615200565b8151811061097b57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250505b6109a7868e8d612694565b97508b8860018a516109b99190615200565b815181106109d757634e487b7160e01b600052603260045260246000fd5b602002602001015110156109fd5760405162461bcd60e51b815260040161023790614e5a565b610a988b600081518110610a2157634e487b7160e01b600052603260045260246000fd5b6020026020010151610a77888e600081518110610a4e57634e487b7160e01b600052603260045260246000fd5b60200260200101518f60018151811061052457634e487b7160e01b600052603260045260246000fd5b8a60008151811061055257634e487b7160e01b600052603260045260246000fd5b8215610aaf57610aaa86898d8d6129b5565b610afc565b610abb86898d306129b5565b610afc82828a60018c51610acf9190615200565b81518110610aed57634e487b7160e01b600052603260045260246000fd5b6020026020010151878e612de2565b5050505050505095945050505050565b60608142811015610b2f5760405162461bcd60e51b815260040161023790614dc6565b6000306001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b6a57600080fd5b505afa158015610b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba2919061457c565b90506000306001600160a01b0316631b5f58c86040518163ffffffff1660e01b815260040160206040518083038186803b158015610bdf57600080fd5b505afa158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c17919061457c565b90506000306001600160a01b031663be745fff6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c5457600080fd5b505afa158015610c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8c919061477b565b9050600088600081518110610cb157634e487b7160e01b600052603260045260246000fd5b60200260200101519050826001600160a01b0316630c0f6b71846001600160a01b0316631bf8ee708c600081518110610cfa57634e487b7160e01b600052603260045260246000fd5b60200260200101516040518263ffffffff1660e01b8152600401610d1e9190614adb565b60206040518083038186803b158015610d3657600080fd5b505afa158015610d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6e919061477b565b6040518263ffffffff1660e01b8152600401610d8a9190614fdf565b60206040518083038186803b158015610da257600080fd5b505afa158015610db6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dda919061457c565b89600081518110610dfb57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050610e26848c8b612ee1565b955088600081518110610e4957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8957600080fd5b505afa158015610e9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec1919061477b565b610ecc906012615200565b610ed790600a615113565b86600081518110610ef857634e487b7160e01b600052603260045260246000fd5b6020026020010151610f0a91906150ad565b610f15906001615095565b86600081518110610f3657634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508986600081518110610f6457634e487b7160e01b600052603260045260246000fd5b60200260200101511115610f8a5760405162461bcd60e51b815260040161023790614c30565b610fbe81333089600081518110610fb157634e487b7160e01b600052603260045260246000fd5b6020026020010151612293565b610ff18187600081518110610fe357634e487b7160e01b600052603260045260246000fd5b602002602001015185612398565b90508660008151811061101457634e487b7160e01b600052603260045260246000fd5b6020026020010181815250506110bb8960008151811061104457634e487b7160e01b600052603260045260246000fd5b602002602001015161109a868c60008151811061107157634e487b7160e01b600052603260045260246000fd5b60200260200101518d60018151811061052457634e487b7160e01b600052603260045260246000fd5b8860008151811061055257634e487b7160e01b600052603260045260246000fd5b6110c784878b306129b5565b6111078287600189516110da9190615200565b815181106110f857634e487b7160e01b600052603260045260246000fd5b6020026020010151858b612ba2565b505050505095945050505050565b606081428110156111385760405162461bcd60e51b815260040161023790614dc6565b6000306001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561117357600080fd5b505afa158015611187573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ab919061457c565b90506000306001600160a01b031663f4734b0c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156111e857600080fd5b505afa1580156111fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611220919061457c565b90506000306001600160a01b0316631b5f58c86040518163ffffffff1660e01b815260040160206040518083038186803b15801561125d57600080fd5b505afa158015611271573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611295919061457c565b90506112a13482611d3c565b886000815181106112c257634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060008060006112f98b60018d516107eb9190615200565b90935091508215801561135257508a60018c516113169190615200565b8151811061133457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316856001600160a01b031614155b1561147e578a60018c516113669190615200565b8151811061138457634e487b7160e01b600052603260045260246000fd5b60200260200101519050611398818d612d48565b6040517f0c0f6b71000000000000000000000000000000000000000000000000000000008152909c506001600160a01b03851690630c0f6b71906113e0908590600401614fdf565b60206040518083038186803b1580156113f857600080fd5b505afa15801561140c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611430919061457c565b8b60018d5161143f9190615200565b8151811061145d57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250505b61148986348d612694565b97508b8860018a5161149b9190615200565b815181106114b957634e487b7160e01b600052603260045260246000fd5b602002602001015110156114df5760405162461bcd60e51b815260040161023790614e5a565b6115038b600081518110610a2157634e487b7160e01b600052603260045260246000fd5b821561151a5761151586898d8d6129b5565b61153a565b61152686898d306129b5565b61153a82828a60018c51610acf9190615200565b50505050505050949350505050565b6060814281101561156c5760405162461bcd60e51b815260040161023790614dc6565b6000306001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156115a757600080fd5b505afa1580156115bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115df919061457c565b90506000306001600160a01b0316631b5f58c86040518163ffffffff1660e01b815260040160206040518083038186803b15801561161c57600080fd5b505afa158015611630573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611654919061457c565b905060008760008151811061167957634e487b7160e01b600052603260045260246000fd5b60200260200101519050816001600160a01b0316630c0f6b71836001600160a01b0316631bf8ee708b6000815181106116c257634e487b7160e01b600052603260045260246000fd5b60200260200101516040518263ffffffff1660e01b81526004016116e69190614adb565b60206040518083038186803b1580156116fe57600080fd5b505afa158015611712573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611736919061477b565b6040518263ffffffff1660e01b81526004016117529190614fdf565b60206040518083038186803b15801561176a57600080fd5b505afa15801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a2919061457c565b886000815181106117c357634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250506000806117f88a60018c516107eb9190615200565b90925090506000821580156118c357508a60018c516118179190615200565b8151811061183557634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316306001600160a01b031663f4734b0c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561187f57600080fd5b505afa158015611893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b7919061457c565b6001600160a01b031614155b156119ef578a60018c516118d79190615200565b815181106118f557634e487b7160e01b600052603260045260246000fd5b60200260200101519050611909818e612d48565b6040517f0c0f6b71000000000000000000000000000000000000000000000000000000008152909d506001600160a01b03861690630c0f6b7190611951908590600401614fdf565b60206040518083038186803b15801561196957600080fd5b505afa15801561197d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a1919061457c565b8b60018d516119b09190615200565b815181106119ce57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250505b6119fa868e8d612ee1565b9750836001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611a3557600080fd5b505afa158015611a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6d919061477b565b611a78906012615200565b611a8390600a615113565b88600081518110611aa457634e487b7160e01b600052603260045260246000fd5b6020026020010151611ab691906150ad565b611ac1906001615095565b88600081518110611ae257634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508b88600081518110611b1057634e487b7160e01b600052603260045260246000fd5b60200260200101511115611b365760405162461bcd60e51b815260040161023790614c30565b611b5d8433308b600081518110610fb157634e487b7160e01b600052603260045260246000fd5b611b908489600081518110611b8257634e487b7160e01b600052603260045260246000fd5b602002602001015187612398565b905088600081518110611bb357634e487b7160e01b600052603260045260246000fd5b602002602001018181525050611be38b600081518110610a2157634e487b7160e01b600052603260045260246000fd5b8215611bf557610aaa86898d8d6129b5565b611c0186898d306129b5565b610afc82828a60018c51611c159190615200565b81518110611c3357634e487b7160e01b600052603260045260246000fd5b6020026020010151888e612de2565b6000806000fd5b600080806060818082611c5e888a018a614902565b80519197509150611c7890820160209081019083016147e6565b92975090955093509150611c8d905033613086565b15611c985788611caa565b611caa89670de0b6b3a76400006151e1565b98508460021415611cc757611cc28985858585613116565b611d0b565b8460031415611cde57611cc2848a85858f8661359d565b8460041415611cf457611cc28985858585613a16565b84600514156100b157611cc2848a85858f86613d34565b507ff23a6e61000000000000000000000000000000000000000000000000000000009b9a5050505050505050505050565b6000816001600160a01b031663ce1570dc846040518263ffffffff1660e01b815260040160408051808303818588803b158015611d7857600080fd5b505af1158015611d8c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611db191906147c2565b949350505050565b60608142811015611ddc5760405162461bcd60e51b815260040161023790614dc6565b6000306001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611e1757600080fd5b505afa158015611e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4f919061457c565b90506000306001600160a01b0316631b5f58c86040518163ffffffff1660e01b815260040160206040518083038186803b158015611e8c57600080fd5b505afa158015611ea0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec4919061457c565b90506000306001600160a01b031663f4734b0c6040518163ffffffff1660e01b815260040160206040518083038186803b158015611f0157600080fd5b505afa158015611f15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f39919061457c565b90506000806000611f7e8b60018d51611f529190615200565b81518110611f7057634e487b7160e01b600052603260045260246000fd5b602002602001015186612c2b565b909350915082158015611fd757508a60018c51611f9b9190615200565b81518110611fb957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316846001600160a01b031614155b15612103578a60018c51611feb9190615200565b8151811061200957634e487b7160e01b600052603260045260246000fd5b6020026020010151905061201d818d612d48565b6040517f0c0f6b71000000000000000000000000000000000000000000000000000000008152909c506001600160a01b03861690630c0f6b7190612065908590600401614fdf565b60206040518083038186803b15801561207d57600080fd5b505afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b5919061457c565b8b60018d516120c49190615200565b815181106120e257634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250505b61210e868d8d612ee1565b9750348860008151811061213257634e487b7160e01b600052603260045260246000fd5b602002602001015111156121585760405162461bcd60e51b815260040161023790614c30565b61218a8860008151811061217c57634e487b7160e01b600052603260045260246000fd5b602002602001015186611d3c565b8b6000815181106121ab57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250506121ef8b600081518110610a2157634e487b7160e01b600052603260045260246000fd5b82156122065761220186898d8d6129b5565b612226565b61221286898d306129b5565b61222682828a60018c51611c159190615200565b8760008151811061224757634e487b7160e01b600052603260045260246000fd5b602002602001015134111561153a5761153a338960008151811061227b57634e487b7160e01b600052603260045260246000fd5b60200260200101513461228e9190615200565b614090565b600080856001600160a01b03166323b872dd8686866040516024016122ba93929190614b09565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516123089190614a3e565b6000604051808303816000865af19150503d8060008114612345576040519150601f19603f3d011682016040523d82523d6000602084013e61234a565b606091505b509150915081801561237457508051158061237457508080602001905181019061237491906146cd565b6123905760405162461bcd60e51b815260040161023790614f4b565b505050505050565b60008083856001600160a01b031663dd62ed3e30866040518363ffffffff1660e01b81526004016123ca929190614aef565b60206040518083038186803b1580156123e257600080fd5b505afa1580156123f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241a919061477b565b10156124bd576040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063095ea7b39061246990869060001990600401614b2d565b602060405180830381600087803b15801561248357600080fd5b505af1158015612497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bb91906146cd565b505b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526000906001600160a01b038516906340c10f19906125079089908990600401614b2d565b6040805180830381600087803b15801561252057600080fd5b505af1158015612534573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255891906147c2565b506040517f0c0f6b710000000000000000000000000000000000000000000000000000000081529091506001600160a01b03851690630c0f6b71906125a1908490600401614fdf565b60206040518083038186803b1580156125b957600080fd5b505afa1580156125cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f1919061457c565b6040517f70a082310000000000000000000000000000000000000000000000000000000081529093506001600160a01b038416906370a0823190612639903090600401614adb565b60206040518083038186803b15801561265157600080fd5b505afa158015612665573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612689919061477b565b915050935093915050565b60606002825110156126b85760405162461bcd60e51b815260040161023790614d32565b815167ffffffffffffffff8111156126e057634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015612709578160200160208202803683370190505b509050828160008151811061272e57634e487b7160e01b600052603260045260246000fd5b60200260200101818152505060005b6001835161274b9190615200565b81101561283b576000806127ba8786858151811061277957634e487b7160e01b600052603260045260246000fd5b60200260200101518786600161278f9190615095565b815181106127ad57634e487b7160e01b600052603260045260246000fd5b6020026020010151614122565b915091506127f08484815181106127e157634e487b7160e01b600052603260045260246000fd5b60200260200101518383614209565b846127fc856001615095565b8151811061281a57634e487b7160e01b600052603260045260246000fd5b602002602001018181525050505080806128339061525a565b91505061273d565b509392505050565b600080600061285285856142a3565b9150915085828260405160200161286a929190614a04565b60405160208183030381529060405280519060200120604051602001612891929190614a5a565b60408051601f1981840301815291905280516020909101209695505050505050565b600080846001600160a01b031663a9059cbb85856040516024016128d8929190614b2d565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516129269190614a3e565b6000604051808303816000865af19150503d8060008114612963576040519150601f19603f3d011682016040523d82523d6000602084013e612968565b606091505b509150915081801561299257508051158061299257508080602001905181019061299291906146cd565b6129ae5760405162461bcd60e51b815260040161023790614bf9565b5050505050565b60005b600183516129c69190615200565b8110156129ae576000808483815181106129f057634e487b7160e01b600052603260045260246000fd5b602002602001015185846001612a069190615095565b81518110612a2457634e487b7160e01b600052603260045260246000fd5b6020026020010151915091506000612a3c83836142a3565b509050600087612a4d866001615095565b81518110612a6b57634e487b7160e01b600052603260045260246000fd5b60200260200101519050600080836001600160a01b0316866001600160a01b031614612a9957826000612a9d565b6000835b91509150600060028a51612ab19190615200565b8810612abd5788612aec565b612aec8c878c612ace8c6002615095565b8151811061052457634e487b7160e01b600052603260045260246000fd5b9050612af98c8888612843565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f191660200182016040528015612b36576020820181803683370190505b506040518563ffffffff1660e01b8152600401612b569493929190614ff6565b600060405180830381600087803b158015612b7057600080fd5b505af1158015612b84573d6000803e3d6000fd5b50505050505050505050508080612b9a9061525a565b9150506129b8565b6040517fb390c0ab0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063b390c0ab90612be99087908790600401614fe8565b600060405180830381600087803b158015612c0357600080fd5b505af1158015612c17573d6000803e3d6000fd5b50505050612c258184614090565b50505050565b600080836001600160a01b0316631836b97d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c6757600080fd5b505afa925050508015612c97575060408051601f3d908101601f19168201909252612c949181019061457c565b60015b612d3b576040517f1bf8ee70000000000000000000000000000000000000000000000000000000008152600092506001600160a01b03841690631bf8ee7090612ce4908790600401614adb565b60206040518083038186803b158015612cfc57600080fd5b505afa158015612d10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d34919061477b565b9050612d41565b50600191505b9250929050565b6000826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612d8357600080fd5b505afa158015612d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dbb919061477b565b612dc6906012615200565b612dd190600a615113565b612ddb90836151e1565b9392505050565b6040517fb390c0ab0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063b390c0ab90612e299088908790600401614fe8565b600060405180830381600087803b158015612e4357600080fd5b505af1158015612e57573d6000803e3d6000fd5b505050506129ae8482866001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612e8c9190614adb565b60206040518083038186803b158015612ea457600080fd5b505afa158015612eb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612edc919061477b565b6128b3565b6060600282511015612f055760405162461bcd60e51b815260040161023790614d32565b815167ffffffffffffffff811115612f2d57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015612f56578160200160208202803683370190505b509050828160018351612f699190615200565b81518110612f8757634e487b7160e01b600052603260045260246000fd5b602002602001018181525050600060018351612fa39190615200565b90505b801561283b576000806130058786612fbf600187615200565b81518110612fdd57634e487b7160e01b600052603260045260246000fd5b60200260200101518786815181106127ad57634e487b7160e01b600052603260045260246000fd5b9150915061303b84848151811061302c57634e487b7160e01b600052603260045260246000fd5b60200260200101518383614326565b84613047600186615200565b8151811061306557634e487b7160e01b600052603260045260246000fd5b6020026020010181815250505050808061307e90615243565b915050612fa6565b6000816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156130c157600080fd5b505afa9250505080156130f1575060408051601f3d908101601f191682019092526130ee9181019061477b565b60015b6130fd5750601261020f565b8060011461310b578061310e565b60005b91505061020f565b80428110156131375760405162461bcd60e51b815260040161023790614dc6565b6000306001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561317257600080fd5b505afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa919061457c565b90506000306001600160a01b0316631b5f58c86040518163ffffffff1660e01b815260040160206040518083038186803b1580156131e757600080fd5b505afa1580156131fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061321f919061457c565b905060008060006132388960018b516107eb9190615200565b90935091508215801561330157508860018a516132559190615200565b8151811061327357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316306001600160a01b031663f4734b0c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156132bd57600080fd5b505afa1580156132d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132f5919061457c565b6001600160a01b031614155b1561342d578860018a516133159190615200565b8151811061333357634e487b7160e01b600052603260045260246000fd5b60200260200101519050613347818b612d48565b6040517f0c0f6b71000000000000000000000000000000000000000000000000000000008152909a506001600160a01b03851690630c0f6b719061338f908590600401614fdf565b60206040518083038186803b1580156133a757600080fd5b505afa1580156133bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133df919061457c565b8960018b516133ee9190615200565b8151811061340c57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250505b600061343a868d8c612694565b90508a816001835161344c9190615200565b8151811061346a57634e487b7160e01b600052603260045260246000fd5b602002602001015110156134905760405162461bcd60e51b815260040161023790614e5a565b61352b8a6000815181106134b457634e487b7160e01b600052603260045260246000fd5b602002602001015161350a888d6000815181106134e157634e487b7160e01b600052603260045260246000fd5b60200260200101518e60018151811061052457634e487b7160e01b600052603260045260246000fd5b8360008151811061055257634e487b7160e01b600052603260045260246000fd5b83156135425761353d86828c8c6129b5565b61358f565b61354e86828c306129b5565b61358f838383600185516135629190615200565b8151811061358057634e487b7160e01b600052603260045260246000fd5b6020026020010151888d612de2565b505050505050505050505050565b80428110156135be5760405162461bcd60e51b815260040161023790614dc6565b6000306001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156135f957600080fd5b505afa15801561360d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613631919061457c565b90506000306001600160a01b0316631b5f58c86040518163ffffffff1660e01b815260040160206040518083038186803b15801561366e57600080fd5b505afa158015613682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136a6919061457c565b905060008060006136bf8a60018c516107eb9190615200565b90935091508215801561378857508960018b516136dc9190615200565b815181106136fa57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316306001600160a01b031663f4734b0c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561374457600080fd5b505afa158015613758573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061377c919061457c565b6001600160a01b031614155b156138b4578960018b5161379c9190615200565b815181106137ba57634e487b7160e01b600052603260045260246000fd5b602002602001015190506137ce818d612d48565b6040517f0c0f6b71000000000000000000000000000000000000000000000000000000008152909c506001600160a01b03851690630c0f6b7190613816908590600401614fdf565b60206040518083038186803b15801561382e57600080fd5b505afa158015613842573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613866919061457c565b8a60018c516138759190615200565b8151811061389357634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250505b60006138c1868e8d612ee1565b90508b816000815181106138e557634e487b7160e01b600052603260045260246000fd5b6020026020010151111561390b5760405162461bcd60e51b815260040161023790614c30565b6000808260008151811061392f57634e487b7160e01b600052603260045260246000fd5b60200260200101518e6139429190615200565b915081111561397e5761397e8c60008151811061396f57634e487b7160e01b600052603260045260246000fd5b60200260200101518b836128b3565b506139d08b6000815181106139a357634e487b7160e01b600052603260045260246000fd5b602002602001015161350a888e600081518110610a4e57634e487b7160e01b600052603260045260246000fd5b83156139e7576139e286828d8d6129b5565b613a07565b6139f386828d306129b5565b613a0783838360018551611c159190615200565b50505050505050505050505050565b8042811015613a375760405162461bcd60e51b815260040161023790614dc6565b6000306001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015613a7257600080fd5b505afa158015613a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aaa919061457c565b90506000306001600160a01b0316631b5f58c86040518163ffffffff1660e01b815260040160206040518083038186803b158015613ae757600080fd5b505afa158015613afb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b1f919061457c565b90506000306001600160a01b031663be745fff6040518163ffffffff1660e01b815260040160206040518083038186803b158015613b5c57600080fd5b505afa158015613b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b94919061477b565b90506000613ba3848b8a612694565b9050888160018351613bb59190615200565b81518110613bd357634e487b7160e01b600052603260045260246000fd5b60200260200101511015613bf95760405162461bcd60e51b815260040161023790614e5a565b613c4a88600081518110613c1d57634e487b7160e01b600052603260045260246000fd5b602002602001015161350a868b6000815181106104fb57634e487b7160e01b600052603260045260246000fd5b613c5684828a306129b5565b826001600160a01b031663b390c0ab838360018551613c759190615200565b81518110613c9357634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b8152600401613cb8929190614fe8565b600060405180830381600087803b158015613cd257600080fd5b505af1158015613ce6573d6000803e3d6000fd5b50505050613d28878260018451613cfd9190615200565b81518110613d1b57634e487b7160e01b600052603260045260246000fd5b6020026020010151614090565b50505050505050505050565b8042811015613d555760405162461bcd60e51b815260040161023790614dc6565b6000306001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015613d9057600080fd5b505afa158015613da4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dc8919061457c565b90506000306001600160a01b0316631b5f58c86040518163ffffffff1660e01b815260040160206040518083038186803b158015613e0557600080fd5b505afa158015613e19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e3d919061457c565b90506000306001600160a01b031663be745fff6040518163ffffffff1660e01b815260040160206040518083038186803b158015613e7a57600080fd5b505afa158015613e8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eb2919061477b565b90506000613ec1848c8b612ee1565b90508981600081518110613ee557634e487b7160e01b600052603260045260246000fd5b60200260200101511115613f0b5760405162461bcd60e51b815260040161023790614c30565b60008082600081518110613f2f57634e487b7160e01b600052603260045260246000fd5b60200260200101518c613f429190615200565b9150811115613f7e57613f7e8a600081518110613f6f57634e487b7160e01b600052603260045260246000fd5b602002602001015189836128b3565b50613fd089600081518110613fa357634e487b7160e01b600052603260045260246000fd5b602002602001015161350a868c60008151811061107157634e487b7160e01b600052603260045260246000fd5b613fdc84828b306129b5565b826001600160a01b031663b390c0ab838360018551613ffb9190615200565b8151811061401957634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b815260040161403e929190614fe8565b600060405180830381600087803b15801561405857600080fd5b505af115801561406c573d6000803e3d6000fd5b50505050614083888260018451613cfd9190615200565b5050505050505050505050565b604080516000808252602082019092526001600160a01b0384169083906040516140ba9190614a3e565b60006040518083038185875af1925050503d80600081146140f7576040519150601f19603f3d011682016040523d82523d6000602084013e6140fc565b606091505b505090508061411d5760405162461bcd60e51b815260040161023790614e91565b505050565b600080600061413185856142a3565b509050600080614142888888612843565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561417a57600080fd5b505afa15801561418e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141b2919061472d565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150826001600160a01b0316876001600160a01b0316146141f75780826141fa565b81815b90999098509650505050505050565b600080841161422a5760405162461bcd60e51b815260040161023790614d69565b60008311801561423a5750600082115b6142565760405162461bcd60e51b815260040161023790614eee565b6000614264856103e56143ba565b9050600061427282856143ba565b9050600061428c83614286886103e86143ba565b90614400565b905061429881836150ad565b979650505050505050565b600080826001600160a01b0316846001600160a01b031614156142d85760405162461bcd60e51b815260040161023790614dfd565b826001600160a01b0316846001600160a01b0316106142f85782846142fb565b83835b90925090506001600160a01b038216612d415760405162461bcd60e51b815260040161023790614fa8565b60008084116143475760405162461bcd60e51b815260040161023790614cd5565b6000831180156143575750600082115b6143735760405162461bcd60e51b815260040161023790614eee565b600061438b6103e861438586886143ba565b906143ba565b9050600061439f6103e5614385868961442e565b90506143b0600161428683856150ad565b9695505050505050565b60008115806143de575082826143d081836151e1565b92506143dc90836150ad565b145b6143fa5760405162461bcd60e51b815260040161023790614c67565b92915050565b60008261440d8382615095565b91508110156143fa5760405162461bcd60e51b815260040161023790614c9e565b60008261443b8382615200565b91508111156143fa5760405162461bcd60e51b815260040161023790614bc2565b805161020f816152a1565b600082601f830112614477578081fd5b8135602061448c61448783615071565b615047565b82815281810190858301838502870184018810156144a8578586fd5b855b858110156144cf5781356144bd816152a1565b845292840192908401906001016144aa565b5090979650505050505050565b60008083601f8401126144ed578182fd5b50813567ffffffffffffffff811115614504578182fd5b6020830191508360208083028501011115612d4157600080fd5b60008083601f84011261452f578182fd5b50813567ffffffffffffffff811115614546578182fd5b602083019150836020828501011115612d4157600080fd5b80516dffffffffffffffffffffffffffff8116811461020f57600080fd5b60006020828403121561458d578081fd5b8151612ddb816152a1565b60008060008060008060008060a0898b0312156145b3578384fd5b88356145be816152a1565b975060208901356145ce816152a1565b9650604089013567ffffffffffffffff808211156145ea578586fd5b6145f68c838d016144dc565b909850965060608b013591508082111561460e578586fd5b61461a8c838d016144dc565b909650945060808b0135915080821115614632578384fd5b5061463f8b828c0161451e565b999c989b5096995094979396929594505050565b60008060008060008060a0878903121561466b578182fd5b8635614676816152a1565b95506020870135614686816152a1565b94506040870135935060608701359250608087013567ffffffffffffffff8111156146af578283fd5b6146bb89828a0161451e565b979a9699509497509295939492505050565b6000602082840312156146de578081fd5b81518015158114612ddb578182fd5b6000602082840312156146fe578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612ddb578182fd5b600080600060608486031215614741578081fd5b61474a8461455e565b92506147586020850161455e565b9150604084015163ffffffff81168114614770578182fd5b809150509250925092565b60006020828403121561478c578081fd5b5051919050565b600080604083850312156147a5578182fd5b8235915060208301356147b7816152a1565b809150509250929050565b600080604083850312156147d4578182fd5b8251915060208301516147b7816152a1565b600080600080608085870312156147fb578182fd5b8451935060208086015167ffffffffffffffff811115614819578384fd5b8601601f81018813614829578384fd5b805161483761448782615071565b81815283810190838501858402850186018c1015614853578788fd5b8794505b8385101561487e57805161486a816152a1565b835260019490940193918501918501614857565b5080975050505050506148936040860161445c565b6060959095015193969295505050565b600080600080608085870312156148b8578182fd5b84359350602085013567ffffffffffffffff8111156148d5578283fd5b6148e187828801614467565b93505060408501356148f2816152a1565b9396929550929360600135925050565b60008060408385031215614914578182fd5b8235915060208084013567ffffffffffffffff80821115614933578384fd5b818601915086601f830112614946578384fd5b8135818111156149585761495861528b565b61496a84601f19601f84011601615047565b9150808252878482850101111561497f578485fd5b8084840185840137810190920192909252919491935090915050565b600080600080600060a086880312156149b2578283fd5b8535945060208601359350604086013567ffffffffffffffff8111156149d6578384fd5b6149e288828901614467565b93505060608601356149f3816152a1565b949793965091946080013592915050565b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606093841b811682529190921b16601482015260280190565b60008251614a50818460208701615217565b9190910192915050565b7fff00000000000000000000000000000000000000000000000000000000000000815260609290921b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016600183015260158201527f1974917c1e01e6369c1b45f631eae6a71d24cb5108c460cc7f0b1c608b3a7c94603582015260550190565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015614b7e57835183529284019291840191600101614b62565b50909695505050505050565b901515815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b60208082526015908201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604082015260600190565b6020808252601f908201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604082015260600190565b60208082526016908201527f4558434553534956455f494e5055545f414d4f554e5400000000000000000000604082015260600190565b60208082526014908201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604082015260600190565b60208082526014908201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604082015260600190565b6020808252602a908201527f4d6174657269614c6962726172793a20494e53554646494349454e545f4f555460408201527f5055545f414d4f554e5400000000000000000000000000000000000000000000606082015260800190565b6020808252601c908201527f4d6174657269614c6962726172793a20494e56414c49445f5041544800000000604082015260600190565b60208082526029908201527f4d6174657269614c6962726172793a20494e53554646494349454e545f494e5060408201527f55545f414d4f554e540000000000000000000000000000000000000000000000606082015260800190565b60208082526010908201527f4d6174657269613a204578706972656400000000000000000000000000000000604082015260600190565b60208082526023908201527f4d6174657269614c6962726172793a204944454e544943414c5f41444452455360408201527f5345530000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601a908201527f494e53554646494349454e545f4f55545055545f414d4f554e54000000000000604082015260600190565b60208082526023908201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960408201527f4c45440000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f4d6174657269614c6962726172793a20494e53554646494349454e545f4c495160408201527f5549444954590000000000000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f464160408201527f494c454400000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601c908201527f4d6174657269614c6962726172793a205a45524f5f4144445245535300000000604082015260600190565b90815260200190565b918252602082015260400190565b60008582528460208301526001600160a01b03841660408301526080606083015282518060808401526150308160a0850160208701615217565b601f01601f19169190910160a00195945050505050565b60405181810167ffffffffffffffff811182821017156150695761506961528b565b604052919050565b600067ffffffffffffffff82111561508b5761508b61528b565b5060209081020190565b600082198211156150a8576150a8615275565b500190565b6000826150c857634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116150df575061510a565b8187048211156150f1576150f1615275565b808616156150fe57918102915b9490941c9380026150d0565b94509492505050565b6000612ddb600019848460008261512c57506001612ddb565b8161513957506000612ddb565b816001811461514f576002811461515957615186565b6001915050612ddb565b60ff84111561516a5761516a615275565b6001841b91508482111561518057615180615275565b50612ddb565b5060208310610133831016604e8410600b84101617156151b9575081810a838111156151b4576151b4615275565b612ddb565b6151c684848460016150cd565b8086048211156151d8576151d8615275565b02949350505050565b60008160001904831182151516156151fb576151fb615275565b500290565b60008282101561521257615212615275565b500390565b60005b8381101561523257818101518382015260200161521a565b83811115612c255750506000910152565b60008161525257615252615275565b506000190190565b600060001982141561526e5761526e615275565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146152b657600080fd5b5056fea26469706673582212202c7380dd619a0d52a6c7a8b8c79a1218