From 8ebc7733ff0618d441874b398688bad37797789a Mon Sep 17 00:00:00 2001 From: Size Date: Mon, 8 Jan 2024 21:18:20 +0000 Subject: [PATCH 1/2] Update coverage [skip ci] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1f99628f..12601e7a 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Size V2 Solidity | src/libraries/actions/BorrowerExit.sol | 96.30% (26/27) | 97.06% (33/34) | 80.00% (8/10) | 100.00% (2/2) | | src/libraries/actions/Claim.sol | 100.00% (7/7) | 100.00% (8/8) | 100.00% (2/2) | 100.00% (2/2) | | src/libraries/actions/Common.sol | 100.00% (58/58) | 98.82% (84/85) | 85.00% (17/20) | 86.67% (13/15) | -| src/libraries/actions/Compensate.sol | 100.00% (17/17) | 100.00% (20/20) | 100.00% (10/10) | 100.00% (2/2) | +| src/libraries/actions/Compensate.sol | 100.00% (19/19) | 100.00% (25/25) | 100.00% (12/12) | 100.00% (2/2) | | src/libraries/actions/Deposit.sol | 100.00% (10/10) | 100.00% (17/17) | 100.00% (4/4) | 100.00% (2/2) | | src/libraries/actions/Initialize.sol | 100.00% (22/22) | 100.00% (29/29) | 100.00% (14/14) | 100.00% (2/2) | | src/libraries/actions/LendAsLimitOrder.sol | 100.00% (11/11) | 100.00% (12/12) | 87.50% (7/8) | 100.00% (2/2) | From 7ac6361b4b3528ca821fd2b454b0218bf6536aaa Mon Sep 17 00:00:00 2001 From: Size Date: Mon, 8 Jan 2024 21:18:23 +0000 Subject: [PATCH 2/2] Update types [skip ci] --- types/ethers-contracts/factories/PriceFeed__factory.ts | 2 +- types/ethers-contracts/factories/Size__factory.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/types/ethers-contracts/factories/PriceFeed__factory.ts b/types/ethers-contracts/factories/PriceFeed__factory.ts index 10c74fc1..697c6805 100644 --- a/types/ethers-contracts/factories/PriceFeed__factory.ts +++ b/types/ethers-contracts/factories/PriceFeed__factory.ts @@ -204,7 +204,7 @@ const _abi = [ ] as const; const _bytecode = - "0x61016060405234801561001157600080fd5b50604051610aa9380380610aa983398101604081905261003091610206565b6001600160a01b038516158061004d57506001600160a01b038416155b1561006b5760405163de0ce17d60e01b815260040160405180910390fd5b60ff8316158061007e575060128360ff16115b156100a55760405163b094f61d60e01b815260ff8416600482015260240160405180910390fd5b8115806100b0575080155b156100ce576040516373f9226b60e11b815260040160405180910390fd5b6001600160a01b03808616608081905290851660a05260ff841660c0526101208390526101408290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa158015610132573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610156919061025c565b60ff1660e08160ff168152505060a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c7919061025c565b60ff16610100525061027e9350505050565b80516001600160a01b03811681146101f057600080fd5b919050565b805160ff811681146101f057600080fd5b600080600080600060a0868803121561021e57600080fd5b610227866101d9565b9450610235602087016101d9565b9350610243604087016101f5565b6060870151608090970151959894975095949392505050565b60006020828403121561026e57600080fd5b610277826101f5565b9392505050565b60805160a05160c05160e0516101005161012051610140516107aa6102ff6000396000818161015d015261029a0152600081816101c101526102250152600060f70152600060d001526000818160920152818161024e015261047a01526000818161019a015261027901526000818161011e015261020401526107aa6000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638e6d2bd01161005b5780638e6d2bd01461015857806398d5fdca1461018d578063999b93af14610195578063a4e413e4146101bc57600080fd5b8063313ce5671461008d57806333f76178146100cb5780633fd1e2bd146100f25780635001f3b514610119575b600080fd5b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020015b60405180910390f35b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6101407f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100c2565b61017f7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100c2565b61017f6101e3565b6101407f000000000000000000000000000000000000000000000000000000000000000081565b61017f7f000000000000000000000000000000000000000000000000000000000000000081565b600073__$4ff4c5ce550acbe5591598da4589533083$__63b67bee046102497f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610330565b6102747f0000000000000000000000000000000000000000000000000000000000000000600a610616565b6102be7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610330565b6040516001600160e01b031960e086901b168152600481019390935260248301919091526044820152606401602060405180830381865af4158015610307573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032b9190610625565b905090565b6000806000846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610373573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610397919061065d565b50935050925050600082136103d657604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b836103e182426106ad565b111561041257604051632c4f4f3160e21b81526001600160a01b0386166004820152602481018290526044016103cd565b61049e82866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610454573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047891906106c0565b7f00000000000000000000000000000000000000000000000000000000000000006104a9565b925050505b92915050565b60008160ff168360ff1610156104e2576104c383836106e3565b6104d19060ff16600a6106fc565b6104db9085610708565b9050610515565b8160ff168360ff161115610512576104fa82846106e3565b6105089060ff16600a6106fc565b6104db9085610738565b50825b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561056d5781600019048211156105535761055361051c565b8085161561056057918102915b93841c9390800290610537565b509250929050565b600082610584575060016104a3565b81610591575060006104a3565b81600181146105a757600281146105b1576105cd565b60019150506104a3565b60ff8411156105c2576105c261051c565b50506001821b6104a3565b5060208310610133831016604e8410600b84101617156105f0575081810a6104a3565b6105fa8383610532565b806000190482111561060e5761060e61051c565b029392505050565b600061051560ff841683610575565b60006020828403121561063757600080fd5b5051919050565b805169ffffffffffffffffffff8116811461065857600080fd5b919050565b600080600080600060a0868803121561067557600080fd5b61067e8661063e565b94506020860151935060408601519250606086015191506106a16080870161063e565b90509295509295909350565b818103818111156104a3576104a361051c565b6000602082840312156106d257600080fd5b815160ff8116811461051557600080fd5b60ff82811682821603908111156104a3576104a361051c565b60006105158383610575565b80820260008212600160ff1b841416156107245761072461051c565b81810583148215176104a3576104a361051c565b60008261075557634e487b7160e01b600052601260045260246000fd5b600160ff1b82146000198414161561076f5761076f61051c565b50059056fea264697066735822122049355547d4caf51d9447b3722abc4a183b1dde8ddf2cb94cbd0f24ff45702cd664736f6c63430008140033"; + "0x61016060405234801561001157600080fd5b50604051610aa9380380610aa983398101604081905261003091610206565b6001600160a01b038516158061004d57506001600160a01b038416155b1561006b5760405163de0ce17d60e01b815260040160405180910390fd5b60ff8316158061007e575060128360ff16115b156100a55760405163b094f61d60e01b815260ff8416600482015260240160405180910390fd5b8115806100b0575080155b156100ce576040516373f9226b60e11b815260040160405180910390fd5b6001600160a01b03808616608081905290851660a05260ff841660c0526101208390526101408290526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa158015610132573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610156919061025c565b60ff1660e08160ff168152505060a0516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c7919061025c565b60ff16610100525061027e9350505050565b80516001600160a01b03811681146101f057600080fd5b919050565b805160ff811681146101f057600080fd5b600080600080600060a0868803121561021e57600080fd5b610227866101d9565b9450610235602087016101d9565b9350610243604087016101f5565b6060870151608090970151959894975095949392505050565b60006020828403121561026e57600080fd5b610277826101f5565b9392505050565b60805160a05160c05160e0516101005161012051610140516107aa6102ff6000396000818161015d015261029a0152600081816101c101526102250152600060f70152600060d001526000818160920152818161024e015261047a01526000818161019a015261027901526000818161011e015261020401526107aa6000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638e6d2bd01161005b5780638e6d2bd01461015857806398d5fdca1461018d578063999b93af14610195578063a4e413e4146101bc57600080fd5b8063313ce5671461008d57806333f76178146100cb5780633fd1e2bd146100f25780635001f3b514610119575b600080fd5b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020015b60405180910390f35b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6101407f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100c2565b61017f7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100c2565b61017f6101e3565b6101407f000000000000000000000000000000000000000000000000000000000000000081565b61017f7f000000000000000000000000000000000000000000000000000000000000000081565b600073__$4ff4c5ce550acbe5591598da4589533083$__63b67bee046102497f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610330565b6102747f0000000000000000000000000000000000000000000000000000000000000000600a610616565b6102be7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610330565b6040516001600160e01b031960e086901b168152600481019390935260248301919091526044820152606401602060405180830381865af4158015610307573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032b9190610625565b905090565b6000806000846001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610373573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610397919061065d565b50935050925050600082136103d657604051633e8ca01160e21b81526001600160a01b0386166004820152602481018390526044015b60405180910390fd5b836103e182426106ad565b111561041257604051632c4f4f3160e21b81526001600160a01b0386166004820152602481018290526044016103cd565b61049e82866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610454573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047891906106c0565b7f00000000000000000000000000000000000000000000000000000000000000006104a9565b925050505b92915050565b60008160ff168360ff1610156104e2576104c383836106e3565b6104d19060ff16600a6106fc565b6104db9085610708565b9050610515565b8160ff168360ff161115610512576104fa82846106e3565b6105089060ff16600a6106fc565b6104db9085610738565b50825b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561056d5781600019048211156105535761055361051c565b8085161561056057918102915b93841c9390800290610537565b509250929050565b600082610584575060016104a3565b81610591575060006104a3565b81600181146105a757600281146105b1576105cd565b60019150506104a3565b60ff8411156105c2576105c261051c565b50506001821b6104a3565b5060208310610133831016604e8410600b84101617156105f0575081810a6104a3565b6105fa8383610532565b806000190482111561060e5761060e61051c565b029392505050565b600061051560ff841683610575565b60006020828403121561063757600080fd5b5051919050565b805169ffffffffffffffffffff8116811461065857600080fd5b919050565b600080600080600060a0868803121561067557600080fd5b61067e8661063e565b94506020860151935060408601519250606086015191506106a16080870161063e565b90509295509295909350565b818103818111156104a3576104a361051c565b6000602082840312156106d257600080fd5b815160ff8116811461051557600080fd5b60ff82811682821603908111156104a3576104a361051c565b60006105158383610575565b80820260008212600160ff1b841416156107245761072461051c565b81810583148215176104a3576104a361051c565b60008261075557634e487b7160e01b600052601260045260246000fd5b600160ff1b82146000198414161561076f5761076f61051c565b50059056fea26469706673582212209230b0e283c1628bb972a9c852bb16d7adaff677aff017e0ba1a5f011a03e65864736f6c63430008140033"; type PriceFeedConstructorParams = | [linkLibraryAddresses: PriceFeedLibraryAddresses, signer?: Signer] diff --git a/types/ethers-contracts/factories/Size__factory.ts b/types/ethers-contracts/factories/Size__factory.ts index 9623cc90..56abffcc 100644 --- a/types/ethers-contracts/factories/Size__factory.ts +++ b/types/ethers-contracts/factories/Size__factory.ts @@ -1553,7 +1553,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051613e366200010460003960008181612aab01528181612ad40152612c1a0152613e366000f3fe6080604052600436106102c95760003560e01c806379ba509711610175578063c17c32f6116100dc578063d54a491411610095578063eff69d951161006f578063eff69d951461095e578063f128aa6e14610973578063f2fde38b146109a0578063f45bf01c146109c057600080fd5b8063d54a491414610909578063da304e4d14610929578063e30c39781461094957600080fd5b8063c17c32f61461079a578063c19d93fb146107ba578063c3f909d414610887578063c9dd1f3c146108a9578063ca40742c146108c9578063d49dd24f146108e957600080fd5b80639e7d09b71161012e5780639e7d09b7146106b8578063a778ab04146106cd578063a9f3f078146106fa578063ac88180f1461070f578063ac9650d81461072f578063ad3cb1cc1461075c57600080fd5b806379ba5097146105f65780637f2c2aba1461060b578063872b7d261461062b5780638da5cb5b1461064b5780638e572776146106785780639cd4aaa81461069857600080fd5b806344ea3bb4116102345780635aa266c9116101ed5780635cbc51eb116101c75780635cbc51eb1461057f57806360a7af43146105ac57806363b08c1a146105c1578063715018a6146105e157600080fd5b80635aa266c91461051f5780635c0f03181461053f5780635c7a2a801461055f57600080fd5b806344ea3bb41461046557806344eea5881461047a5780634ccb20c01461049a5780634f1ef286146104ca578063504006ca146104dd57806352d1902d1461050a57600080fd5b806324c381831161028657806324c38183146103c657806332e7fdef146103e65780633c565417146104065780633d88568114610426578063416b40c71461043b578063421a80211461045057600080fd5b8063042e02cf146102ce57806308631e40146103035780630e0a9f421461033857806318719d5f146103575780631c4fd41c14610379578063211a4443146103a6575b600080fd5b3480156102da57600080fd5b506102ee6102e9366004613050565b6109e0565b60405190151581526020015b60405180910390f35b34801561030f57600080fd5b5061032361031e366004613083565b610a6d565b604080519283526020830191909152016102fa565b34801561034457600080fd5b50600c545b6040519081526020016102fa565b34801561036357600080fd5b506103776103723660046130b1565b610be8565b005b34801561038557600080fd5b506103996103943660046130cd565b610d4c565b6040516102fa91906130e6565b3480156103b257600080fd5b506102ee6103c13660046130cd565b610df6565b3480156103d257600080fd5b506103776103e136600461310e565b610f06565b3480156103f257600080fd5b506102ee6104013660046130cd565b611115565b34801561041257600080fd5b506103776104213660046130b1565b6111d0565b34801561043257600080fd5b50600854610349565b34801561044757600080fd5b50600154610349565b34801561045c57600080fd5b50600b54610349565b34801561047157600080fd5b506103496112e2565b34801561048657600080fd5b506103496104953660046130cd565b61130d565b3480156104a657600080fd5b506104af61133d565b604080519384526020840192909252908201526060016102fa565b6103776104d83660046131c5565b6114a0565b3480156104e957600080fd5b506104fd6104f83660046130cd565b6114bf565b6040516102fa91906132bf565b34801561051657600080fd5b506103496115a0565b34801561052b57600080fd5b5061037761053a3660046132df565b6115bd565b34801561054b57600080fd5b5061037761055a3660046132fb565b611664565b34801561056b57600080fd5b5061037761057a3660046130b1565b611708565b34801561058b57600080fd5b5061059f61059a366004613050565b6117ac565b6040516102fa91906133e9565b3480156105b857600080fd5b50600a54610349565b3480156105cd57600080fd5b506103776105dc3660046132df565b611af3565b3480156105ed57600080fd5b50610377611b9c565b34801561060257600080fd5b50610377611bb0565b34801561061757600080fd5b50610377610626366004613458565b611bfd565b34801561063757600080fd5b50610377610646366004613478565b611ca9565b34801561065757600080fd5b50610660611d4d565b6040516001600160a01b0390911681526020016102fa565b34801561068457600080fd5b50610377610693366004613083565b611d82565b3480156106a457600080fd5b506103496106b33660046130cd565b611e53565b3480156106c457600080fd5b506104af611f53565b3480156106d957600080fd5b506106ed6106e8366004613050565b61206e565b6040516102fa9190613583565b34801561070657600080fd5b50600954610349565b34801561071b57600080fd5b5061037761072a3660046132df565b612167565b34801561073b57600080fd5b5061074f61074a366004613596565b612210565b6040516102fa919061365b565b34801561076857600080fd5b5061078d604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516102fa91906136bd565b3480156107a657600080fd5b506103496107b53660046130b1565b612305565b3480156107c657600080fd5b506040805160a080820183526003546001600160a01b039081168352600454811660208085019190915260055482168486015260065482166060808601919091526007548316608080870191909152865161012081018852600854815260095493810193909352600a5496830196909652600b5490820152600c5494810194909452600d54811691840191909152600e54811660c0840152600f54811660e0840152601054166101008301526108799182565b6040516102fa92919061374b565b34801561089357600080fd5b5061089c612402565b6040516102fa919061379d565b3480156108b557600080fd5b506103496108c43660046130cd565b6124dc565b3480156108d557600080fd5b506103496108e4366004613050565b612597565b3480156108f557600080fd5b506103776109043660046137ac565b6125e1565b34801561091557600080fd5b506103776109243660046137e1565b612685565b34801561093557600080fd5b506103496109443660046130cd565b612785565b34801561095557600080fd5b50610660612840565b34801561096a57600080fd5b50600254610349565b34801561097f57600080fd5b5061099361098e366004613050565b612869565b6040516102fa91906137f3565b3480156109ac57600080fd5b506103776109bb366004613050565b612959565b3480156109cc57600080fd5b506103776109db3660046132df565b6129de565b604051630ab0adeb60e31b81526000600482018190526001600160a01b03831660248301529073__$e3be7a02cc36c4fc59861378e374d62f33$__906355856f58906044015b602060405180830381865af4158015610a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190613806565b92915050565b604051637574819b60e11b8152600090819073__$cff02a526fac95f46ea22f43b5b483056b$__9063eae9033690610aab9084908790600401613823565b60006040518083038186803b158015610ac357600080fd5b505af4158015610ad7573d6000803e3d6000fd5b505060405163085bf74b60e21b815273__$cff02a526fac95f46ea22f43b5b483056b$__925063216fdd2c9150610b15906000908790600401613823565b6040805180830381865af4158015610b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b559190613861565b909250905073__$e3be7a02cc36c4fc59861378e374d62f33$__6344a8b1476000610b866040870160208801613050565b6040516001600160e01b031960e085901b16815260048101929092526001600160a01b0316602482015260440160006040518083038186803b158015610bcb57600080fd5b505af4158015610bdf573d6000803e3d6000fd5b50505050915091565b60405163296e0ffd60e21b815273__$95d87730e373cebb4ca4c1a2f026cb5496$__9063a5b83ff490610c22906000908590600401613885565b60006040518083038186803b158015610c3a57600080fd5b505af4158015610c4e573d6000803e3d6000fd5b505060405163dde714c560e01b815273__$95d87730e373cebb4ca4c1a2f026cb5496$__925063dde714c59150610c8c906000908590600401613885565b60006040518083038186803b158015610ca457600080fd5b505af4158015610cb8573d6000803e3d6000fd5b5073__$e3be7a02cc36c4fc59861378e374d62f33$__92506344a8b147915060009050610ceb6040850160208601613050565b6040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015b60006040518083038186803b158015610d3157600080fd5b505af4158015610d45573d6000803e3d6000fd5b5050505050565b60008073__$e3be7a02cc36c4fc59861378e374d62f33$__637919f151909160006001018581548110610d8157610d816138b9565b90600052602060002090600702016040518363ffffffff1660e01b8152600401610db5929190918252602082015260400190565b602060405180830381865af4158015610dd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6791906138cf565b60008060006001018381548110610e0f57610e0f6138b9565b600091825260208083206040805160e0810182526007949094029091018054845260018101549284019290925260028201546001600160a01b0390811684830152600383015416606084018190526004808401546080860152600584015460ff16151560a086015260069093015460c08501529051630ab0adeb60e31b8152918201939093526024810192909252915073__$e3be7a02cc36c4fc59861378e374d62f33$__906355856f5890604401602060405180830381865af4158015610edb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eff9190613806565b9392505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff16600081158015610f4c5750825b905060008267ffffffffffffffff166001148015610f695750303b155b905081158015610f77575080155b15610f955760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610fbf57845460ff60401b1916600160401b1785555b60405163a692d30d60e01b815273__$34e5abf8aed44cb09d2bd12ec9cc797973$__9063a692d30d90610ffb906000908b908b906004016138f0565b60006040518083038186803b15801561101357600080fd5b505af4158015611027573d6000803e3d6000fd5b50611042925061103d9150506020890189613050565b612a87565b61104a612a98565b611052612a98565b61105a612a98565b604051630bbe48b760e41b815273__$34e5abf8aed44cb09d2bd12ec9cc797973$__9063bbe48b7090611096906000908b908b906004016138f0565b60006040518083038186803b1580156110ae57600080fd5b505af41580156110c2573d6000803e3d6000fd5b50505050831561110c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b600080600101828154811061112c5761112c6138b9565b60009182526020918290206040805160e08101825260079093029091018054835260018101549383019390935260028301546001600160a01b039081168383015260038401541660608301526004808401546080840152600584015460ff16151560a084015260069093015460c0830152516343769a5160e01b815273__$137de846162d19becd7adae071bc6b8643$__926343769a5192610a26929091016132bf565b60405163010cc09b60e21b815273__$d7ed34c1233366b4d2093a06a83503a127$__90630433026c9061120a906000908590600401613a50565b60006040518083038186803b15801561122257600080fd5b505af4158015611236573d6000803e3d6000fd5b505060405163b8359e9760e01b815273__$d7ed34c1233366b4d2093a06a83503a127$__925063b8359e979150611274906000908590600401613a50565b60006040518083038186803b15801561128c57600080fd5b505af41580156112a0573d6000803e3d6000fd5b50506040516344a8b14760e01b81526000600482015233602482015273__$e3be7a02cc36c4fc59861378e374d62f33$__92506344a8b1479150604401610d19565b600a54600b54600091906112fe90670de0b6b3a7640000613a7a565b6113089190613a7a565b905090565b6000806001018281548110611324576113246138b9565b9060005260206000209060070201600401549050919050565b6005546010546040516370a0823160e01b81526001600160a01b039182166004820152600092839283929116906370a0823190602401602060405180830381865afa158015611390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b49190613a8d565b6006546010546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015611400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114249190613a8d565b6007546010546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a08231906024015b602060405180830381865afa158015611471573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114959190613a8d565b925092509250909192565b6114a8612aa0565b6114b182612b45565b6114bb8282612b4d565b5050565b6115136040518060e00160405280600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600015158152602001600081525090565b6001805483908110611527576115276138b9565b60009182526020918290206040805160e08101825260079093029091018054835260018101549383019390935260028301546001600160a01b0390811691830191909152600383015416606082015260048201546080820152600582015460ff16151560a082015260069091015460c082015292915050565b60006115aa612c0f565b50600080516020613de183398151915290565b6040516210aa0b60e31b8152600060048201528135602482015273__$7dc37f9f4797eb854780a74171eb2f4993$__90628550589060440160006040518083038186803b15801561160d57600080fd5b505af4158015611621573d6000803e3d6000fd5b50506040516364140a8360e01b8152600060048201528335602482015273__$7dc37f9f4797eb854780a74171eb2f4993$__92506364140a839150604401610d19565b604051632cc4a87f60e11b815273__$0e7f22a922c80796059a4f902a991c4252$__9063598950fe9061169e906000908590600401613b92565b60006040518083038186803b1580156116b657600080fd5b505af41580156116ca573d6000803e3d6000fd5b505060405163020a460760e61b815273__$0e7f22a922c80796059a4f902a991c4252$__925063829181c09150610d19906000908590600401613b92565b604051638046123560e01b815273__$102e258b2685b09f31e1bdc044a973265c$__90638046123590611742906000908590600401613a50565b60006040518083038186803b15801561175a57600080fd5b505af415801561176e573d6000803e3d6000fd5b50506040516387e2411560e01b815273__$102e258b2685b09f31e1bdc044a973265c$__92506387e241159150610d19906000908590600401613a50565b6117b4612f7c565b604080516001600160a01b038416600090815260208181529083902061012083018452805460c08401908152600182015460e08501528451600283018054606095810283018601885296820187815295968796608088019687959487946101008b0194919390928492849184018282801561184e57602002820191906000526020600020905b81548152602001906001019080831161183a575b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156118a657602002820191906000526020600020905b815481526020019060010190808311611892575b5050509190925250505090525081526040805180820182526004840180548252825160058601805460208082028401606090810188529684018281529781019795969495908701948492849184018282801561192157602002820191906000526020600020905b81548152602001906001019080831161190d575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561197957602002820191906000526020600020905b815481526020019060010190808311611965575b5050509190925250505090525090525081526005546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa1580156119db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ff9190613a8d565b81526006546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa158015611a51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a759190613a8d565b81526007546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa158015611ac7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aeb9190613a8d565b905292915050565b6040516351b4085960e01b8152600060048201528135602482015273__$d8cad9693442357ae3bd536a88ac8b2fda$__906351b408599060440160006040518083038186803b158015611b4557600080fd5b505af4158015611b59573d6000803e3d6000fd5b505060405163aa89ae9f60e01b8152600060048201528335602482015273__$d8cad9693442357ae3bd536a88ac8b2fda$__925063aa89ae9f9150604401610d19565b611ba4612c58565b611bae6000612c8a565b565b3380611bba612840565b6001600160a01b031614611bf15760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b611bfa81612c8a565b50565b611c05612c58565b60405163e57980dd60e01b815273__$32fe41b939f9fd8fb0430b5111f401f35c$__9063e57980dd90611c3f906000908590600401613bd0565b60006040518083038186803b158015611c5757600080fd5b505af4158015611c6b573d6000803e3d6000fd5b5050604051634752b3b360e01b815273__$32fe41b939f9fd8fb0430b5111f401f35c$__9250634752b3b39150610d19906000908590600401613bd0565b604051634721523f60e11b815273__$8d793199f9136f957f886f33c2c7f39b75$__90638e42a47e90611ce3906000908590600401613c3d565b60006040518083038186803b158015611cfb57600080fd5b505af4158015611d0f573d6000803e3d6000fd5b5050604051633ebc18a560e01b815273__$8d793199f9136f957f886f33c2c7f39b75$__9250633ebc18a59150611274906000908590600401613c3d565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b60408051634bc1120160e01b815260006004820152823560248201526020830135604482015290820135606482015273__$ef4190de80c3c7f10088bb7cf8a0baddca$__90634bc112019060840160006040518083038186803b158015611de857600080fd5b505af4158015611dfc573d6000803e3d6000fd5b5050604080516332f4053b60e01b815260006004820152843560248201526020850135604482015290840135606482015273__$ef4190de80c3c7f10088bb7cf8a0baddca$__92506332f4053b9150608401610d19565b60008060006001018381548110611e6c57611e6c6138b9565b600091825260208083206040805160e08101825260079094029091018054845260018101549284019290925260028201546001600160a01b039081168483015260038301541660608401526004808301546080850152600583015460ff16151560a085015260069092015460c08401525163f711fb6960e01b815291935073__$e3be7a02cc36c4fc59861378e374d62f33$__9263f711fb6992611f1292869101613ccb565b602060405180830381865af4158015611f2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eff9190613a8d565b600554600e546040516370a0823160e01b81526001600160a01b039182166004820152600092839283929116906370a0823190602401602060405180830381865afa158015611fa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fca9190613a8d565b600654600e546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015612016573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203a9190613a8d565b600754600e546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401611454565b612076612faa565b6001600160a01b03821660009081526020818152604091829020825160608082018552825482526001830154828501528451600284018054958602820183018752818701868152939694959487019491939092849284918401828280156120fc57602002820191906000526020600020905b8154815260200190600101908083116120e8575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561215457602002820191906000526020600020905b815481526020019060010190808311612140575b5050509190925250505090525092915050565b60405163a2c595c760e01b8152600060048201528135602482015273__$a7e4e07d6d9ebec01c8ddb11fc157c165f$__9063a2c595c79060440160006040518083038186803b1580156121b957600080fd5b505af41580156121cd573d6000803e3d6000fd5b5050604051630c29914560e41b8152600060048201528335602482015273__$a7e4e07d6d9ebec01c8ddb11fc157c165f$__925063c29914509150604401610d19565b60608167ffffffffffffffff81111561222b5761222b613155565b60405190808252806020026020018201604052801561225e57816020015b60608152602001906001900390816122495790505b50905060005b828110156122fe576122ce30858584818110612282576122826138b9565b90506020028101906122949190613ce0565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612cc292505050565b8282815181106122e0576122e06138b9565b602002602001018190525080806122f690613d27565b915050612264565b5092915050565b604051633eaefba560e11b815260006004820181905282356024830152602083013560448301529073__$31eeffd6d129c97860b62769217ca29194$__90637d5df74a9060640160006040518083038186803b15801561236457600080fd5b505af4158015612378573d6000803e3d6000fd5b505060405163e3e32d5160e01b815260006004820152843560248201526020850135604482015273__$31eeffd6d129c97860b62769217ca29194$__925063e3e32d5191506064015b602060405180830381865af41580156123de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190613a8d565b612475604051806101200160405280600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b031681525090565b50604080516101208101825260085481526009546020820152600a5491810191909152600b546060820152600c546080820152600d546001600160a01b0390811660a0830152600e54811660c0830152600f54811660e08301526010541661010082015290565b60008060010182815481106124f3576124f36138b9565b60009182526020918290206040805160e08101825260079093029091018054835260018101549383019390935260028301546001600160a01b039081168383015260038401541660608301526004808401546080840152600584015460ff16151560a084015260069093015460c08301525163a75bd97f60e01b815273__$137de846162d19becd7adae071bc6b8643$__9263a75bd97f926123c1929091016132bf565b60405163046dbd1360e11b81526000600482018190526001600160a01b03831660248301529073__$e3be7a02cc36c4fc59861378e374d62f33$__906308db7a26906044016123c1565b60405163c00a512760e01b815273__$3ea2d971f4db75ed849199519b7bbdd8b6$__9063c00a51279061261b906000908590600401613d40565b60006040518083038186803b15801561263357600080fd5b505af4158015612647573d6000803e3d6000fd5b505060405163af54844160e01b815273__$3ea2d971f4db75ed849199519b7bbdd8b6$__925063af5484419150610d19906000908590600401613d40565b6040516355e37cf560e11b815273__$07e86bcef4998d4b87078f4c72fdc88121$__9063abc6f9ea906126bf906000908590600401613d74565b60006040518083038186803b1580156126d757600080fd5b505af41580156126eb573d6000803e3d6000fd5b5050604051635fc2d93160e01b815273__$07e86bcef4998d4b87078f4c72fdc88121$__9250635fc2d9319150612729906000908590600401613d74565b60006040518083038186803b15801561274157600080fd5b505af4158015612755573d6000803e3d6000fd5b5073__$e3be7a02cc36c4fc59861378e374d62f33$__92506344a8b147915060009050610ceb6020850185613050565b600080600101828154811061279c5761279c6138b9565b60009182526020918290206040805160e08101825260079093029091018054835260018101549383019390935260028301546001600160a01b039081168383015260038401541660608301526004808401546080840152600584015460ff16151560a084015260069093015460c0830152516301e8b8ad60e71b815273__$137de846162d19becd7adae071bc6b8643$__9263f45c5680926123c1929091016132bf565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00611d72565b612871612fe5565b6001600160a01b0382166000908152602081815260409182902082518084018452600482018054825284516005909301805460608187028601810188529685018181529396929587019493919284929184918401828280156120fc57602002820191906000526020600020908154815260200190600101908083116120e85750505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156121545760200282019190600052602060002090815481526020019060010190808311612140575050509190925250505090525092915050565b612961612c58565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556129a5611d4d565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b604051635792057f60e11b8152600060048201528135602482015273__$65756fc1cb7d5518f865a4f2165258b0ec$__9063af240afe9060440160006040518083038186803b158015612a3057600080fd5b505af4158015612a44573d6000803e3d6000fd5b50506040516320e9b9f960e11b8152600060048201528335602482015273__$65756fc1cb7d5518f865a4f2165258b0ec$__92506341d373f29150604401610d19565b612a8f612d38565b611bfa81612d81565b611bae612d38565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480612b2757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612b1b600080516020613de1833981519152546001600160a01b031690565b6001600160a01b031614155b15611bae5760405163703e46dd60e11b815260040160405180910390fd5b611bfa612c58565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612ba7575060408051601f3d908101601f19168201909252612ba491810190613a8d565b60015b612bcf57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401611be8565b600080516020613de18339815191528114612c0057604051632a87526960e21b815260048101829052602401611be8565b612c0a8383612db3565b505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611bae5760405163703e46dd60e11b815260040160405180910390fd5b33612c61611d4d565b6001600160a01b031614611bae5760405163118cdaa760e01b8152336004820152602401611be8565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556114bb82612e09565b6060600080846001600160a01b031684604051612cdf9190613dc4565b600060405180830381855af49150503d8060008114612d1a576040519150601f19603f3d011682016040523d82523d6000602084013e612d1f565b606091505b5091509150612d2f858383612e7a565b95945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16611bae57604051631afcd79f60e31b815260040160405180910390fd5b612d89612d38565b6001600160a01b038116611bf157604051631e4fbdf760e01b815260006004820152602401611be8565b612dbc82612ecf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115612e0157612c0a8282612cc2565b6114bb612f34565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b606082612e8f57612e8a82612f53565b610eff565b8151158015612ea657506001600160a01b0384163b155b156122fe57604051639996b31560e01b81526001600160a01b0385166004820152602401611be8565b806001600160a01b03163b600003612f0557604051634c9c8ce360e01b81526001600160a01b0382166004820152602401611be8565b600080516020613de183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b3415611bae5760405163b398979f60e01b815260040160405180910390fd5b805115612f635780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060800160405280612f8f613014565b81526020016000815260200160008152602001600081525090565b60405180606001604052806000815260200160008152602001612fe0604051806040016040528060608152602001606081525090565b905290565b604051806040016040528060008152602001612fe0604051806040016040528060608152602001606081525090565b6040518060400160405280613027612faa565b8152602001612fe0612fe5565b80356001600160a01b038116811461304b57600080fd5b919050565b60006020828403121561306257600080fd5b610eff82613034565b60006060828403121561307d57600080fd5b50919050565b60006060828403121561309557600080fd5b610eff838361306b565b60006040828403121561307d57600080fd5b6000604082840312156130c357600080fd5b610eff838361309f565b6000602082840312156130df57600080fd5b5035919050565b602081016004831061310857634e487b7160e01b600052602160045260246000fd5b91905290565b6000808284036101c081121561312357600080fd5b6101208082121561313357600080fd5b84935060a061011f198301121561314957600080fd5b92959390920193505050565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff8111828210171561318e5761318e613155565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156131bd576131bd613155565b604052919050565b600080604083850312156131d857600080fd5b6131e183613034565b915060208084013567ffffffffffffffff808211156131ff57600080fd5b818601915086601f83011261321357600080fd5b81358181111561322557613225613155565b613237601f8201601f19168501613194565b9150808252878482850101111561324d57600080fd5b80848401858401376000848284010152508093505050509250929050565b8051825260208101516020830152604081015160018060a01b03808216604085015280606084015116606085015250506080810151608083015260a0810151151560a083015260c081015160c08301525050565b60e08101610a67828461326b565b60006020828403121561307d57600080fd5b6000602082840312156132f157600080fd5b610eff83836132cd565b60006020828403121561330d57600080fd5b813567ffffffffffffffff81111561332457600080fd5b6133308482850161306b565b949350505050565b600081518084526020808501945080840160005b838110156133685781518752958201959082019060010161334c565b509495945050505050565b60008151604084526133886040850182613338565b905060208301518482036020860152612d2f8282613338565b805182526020810151602083015260006040820151606060408501526133306060850182613373565b8051825260006020820151604060208501526133306040850182613373565b6020815260008251608060208401528051604060a085015261340e60e08501826133a1565b905060208201519150609f198482030160c085015261342d81836133ca565b9150506020840151604084015260408401516060840152606084015160808401528091505092915050565b600060e0828403121561307d57600080fd5b8015158114611bfa57600080fd5b6000602080838503121561348b57600080fd5b823567ffffffffffffffff808211156134a357600080fd5b9084019060a082870312156134b757600080fd5b6134bf61316b565b6134c883613034565b815283830135848201526040830135604082015260608301356134ea8161346a565b606082015260808301358281111561350157600080fd5b80840193505086601f84011261351657600080fd5b82358281111561352857613528613155565b8060051b9250613539858401613194565b818152928401850192858101908985111561355357600080fd5b948601945b8486101561357157853582529486019490860190613558565b60808401525090979650505050505050565b602081526000610eff60208301846133a1565b600080602083850312156135a957600080fd5b823567ffffffffffffffff808211156135c157600080fd5b818501915085601f8301126135d557600080fd5b8135818111156135e457600080fd5b8660208260051b85010111156135f957600080fd5b60209290920196919550909350505050565b60005b8381101561362657818101518382015260200161360e565b50506000910152565b6000815180845261364781602086016020860161360b565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156136b057603f1988860301845261369e85835161362f565b94509285019290850190600101613682565b5092979650505050505050565b602081526000610eff602083018461362f565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160018060a01b0380821660a08501528060c08401511660c08501528060e08401511660e0850152505061010080820151613745828501826001600160a01b03169052565b50505050565b82516001600160a01b039081168252602080850151821690830152604080850151821690830152606080850151821690830152608080850151909116908201526101c08101610eff60a08301846136d0565b6101208101610a6782846136d0565b6000602082840312156137be57600080fd5b813567ffffffffffffffff8111156137d557600080fd5b6133308482850161309f565b60006080828403121561307d57600080fd5b602081526000610eff60208301846133ca565b60006020828403121561381857600080fd5b8151610eff8161346a565b828152813560208083019190915260808201906001600160a01b039061384a908501613034565b166040830152604083013560608301529392505050565b6000806040838503121561387457600080fd5b505080516020909101519092909150565b828152813560208083019190915260608201906001600160a01b03906138ac908501613034565b1660408301529392505050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156138e157600080fd5b815160048110610eff57600080fd5b8381526101e081016001600160a01b038061390a86613034565b1660208401528061391d60208701613034565b1660408401525061393060408501613034565b6001600160a01b03811660608401525061394c60608501613034565b6001600160a01b03811660808401525061396860808501613034565b6001600160a01b03811660a08401525061398460a08501613034565b6001600160a01b03811660c0840152506139a060c08501613034565b6001600160a01b03811660e0840152506139bc60e08501613034565b6101006139d3818501836001600160a01b03169052565b6139de818701613034565b9150506139f76101208401826001600160a01b03169052565b5082356101408301526020830135610160830152604083013561018083015260608301356101a083015260808301356101c0830152613330565b6001600160a01b03613a4282613034565b168252602090810135910152565b82815260608101610eff6020830184613a31565b634e487b7160e01b600052601160045260246000fd5b81810381811115610a6757610a67613a64565b600060208284031215613a9f57600080fd5b5051919050565b60008235603e19833603018112613abc57600080fd5b90910192915050565b6000808335601e19843603018112613adc57600080fd5b830160208101925035905067ffffffffffffffff811115613afc57600080fd5b8060051b3603821315613b0e57600080fd5b9250929050565b81835260006001600160fb1b03831115613b2e57600080fd5b8260051b80836020870137939093016020019392505050565b6000613b538283613ac5565b60408552613b65604086018284613b15565b915050613b756020840184613ac5565b8583036020870152613b88838284613b15565b9695505050505050565b8281526040602082015281356040820152602082013560608201526000613bbc6040840184613aa6565b60606080840152612d2f60a0840182613b47565b82815261010081016001600160a01b0380613bea85613034565b16602084015280613bfd60208601613034565b166040840152506040830135606083015260608301356080830152608083013560a083015260a083013560c083015260c083013560e08301529392505050565b8281526000602060408184015260e0830160018060a01b038551166040850152818501516060850152604085015160808501526060850151151560a0850152608085015160a060c0860152818151808452610100870191508483019350600092505b80831015613cbf5783518252928401926001929092019190840190613c9f565b50979650505050505050565b8281526101008101610eff602083018461326b565b6000808335601e19843603018112613cf757600080fd5b83018035915067ffffffffffffffff821115613d1257600080fd5b602001915036819003821315613b0e57600080fd5b600060018201613d3957613d39613a64565b5060010190565b82815260406020820152813560408201526000613d606020840184613aa6565b60406060840152612d2f6080840182613b47565b82815260a081016001600160a01b03613d8c84613034565b16602083015260208301356040830152604083013560608301526060830135613db48161346a565b8015156080840152509392505050565b60008251613dd681846020870161360b565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220a62800937adcce70ea0f34a5e24a76cfb683fac59b045b9e4aa46db7498c300164736f6c63430008140033"; + "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051613e366200010460003960008181612aab01528181612ad40152612c1a0152613e366000f3fe6080604052600436106102c95760003560e01c806379ba509711610175578063c17c32f6116100dc578063d54a491411610095578063eff69d951161006f578063eff69d951461095e578063f128aa6e14610973578063f2fde38b146109a0578063f45bf01c146109c057600080fd5b8063d54a491414610909578063da304e4d14610929578063e30c39781461094957600080fd5b8063c17c32f61461079a578063c19d93fb146107ba578063c3f909d414610887578063c9dd1f3c146108a9578063ca40742c146108c9578063d49dd24f146108e957600080fd5b80639e7d09b71161012e5780639e7d09b7146106b8578063a778ab04146106cd578063a9f3f078146106fa578063ac88180f1461070f578063ac9650d81461072f578063ad3cb1cc1461075c57600080fd5b806379ba5097146105f65780637f2c2aba1461060b578063872b7d261461062b5780638da5cb5b1461064b5780638e572776146106785780639cd4aaa81461069857600080fd5b806344ea3bb4116102345780635aa266c9116101ed5780635cbc51eb116101c75780635cbc51eb1461057f57806360a7af43146105ac57806363b08c1a146105c1578063715018a6146105e157600080fd5b80635aa266c91461051f5780635c0f03181461053f5780635c7a2a801461055f57600080fd5b806344ea3bb41461046557806344eea5881461047a5780634ccb20c01461049a5780634f1ef286146104ca578063504006ca146104dd57806352d1902d1461050a57600080fd5b806324c381831161028657806324c38183146103c657806332e7fdef146103e65780633c565417146104065780633d88568114610426578063416b40c71461043b578063421a80211461045057600080fd5b8063042e02cf146102ce57806308631e40146103035780630e0a9f421461033857806318719d5f146103575780631c4fd41c14610379578063211a4443146103a6575b600080fd5b3480156102da57600080fd5b506102ee6102e9366004613050565b6109e0565b60405190151581526020015b60405180910390f35b34801561030f57600080fd5b5061032361031e366004613083565b610a6d565b604080519283526020830191909152016102fa565b34801561034457600080fd5b50600c545b6040519081526020016102fa565b34801561036357600080fd5b506103776103723660046130b1565b610be8565b005b34801561038557600080fd5b506103996103943660046130cd565b610d4c565b6040516102fa91906130e6565b3480156103b257600080fd5b506102ee6103c13660046130cd565b610df6565b3480156103d257600080fd5b506103776103e136600461310e565b610f06565b3480156103f257600080fd5b506102ee6104013660046130cd565b611115565b34801561041257600080fd5b506103776104213660046130b1565b6111d0565b34801561043257600080fd5b50600854610349565b34801561044757600080fd5b50600154610349565b34801561045c57600080fd5b50600b54610349565b34801561047157600080fd5b506103496112e2565b34801561048657600080fd5b506103496104953660046130cd565b61130d565b3480156104a657600080fd5b506104af61133d565b604080519384526020840192909252908201526060016102fa565b6103776104d83660046131c5565b6114a0565b3480156104e957600080fd5b506104fd6104f83660046130cd565b6114bf565b6040516102fa91906132bf565b34801561051657600080fd5b506103496115a0565b34801561052b57600080fd5b5061037761053a3660046132df565b6115bd565b34801561054b57600080fd5b5061037761055a3660046132fb565b611664565b34801561056b57600080fd5b5061037761057a3660046130b1565b611708565b34801561058b57600080fd5b5061059f61059a366004613050565b6117ac565b6040516102fa91906133e9565b3480156105b857600080fd5b50600a54610349565b3480156105cd57600080fd5b506103776105dc3660046132df565b611af3565b3480156105ed57600080fd5b50610377611b9c565b34801561060257600080fd5b50610377611bb0565b34801561061757600080fd5b50610377610626366004613458565b611bfd565b34801561063757600080fd5b50610377610646366004613478565b611ca9565b34801561065757600080fd5b50610660611d4d565b6040516001600160a01b0390911681526020016102fa565b34801561068457600080fd5b50610377610693366004613083565b611d82565b3480156106a457600080fd5b506103496106b33660046130cd565b611e53565b3480156106c457600080fd5b506104af611f53565b3480156106d957600080fd5b506106ed6106e8366004613050565b61206e565b6040516102fa9190613583565b34801561070657600080fd5b50600954610349565b34801561071b57600080fd5b5061037761072a3660046132df565b612167565b34801561073b57600080fd5b5061074f61074a366004613596565b612210565b6040516102fa919061365b565b34801561076857600080fd5b5061078d604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516102fa91906136bd565b3480156107a657600080fd5b506103496107b53660046130b1565b612305565b3480156107c657600080fd5b506040805160a080820183526003546001600160a01b039081168352600454811660208085019190915260055482168486015260065482166060808601919091526007548316608080870191909152865161012081018852600854815260095493810193909352600a5496830196909652600b5490820152600c5494810194909452600d54811691840191909152600e54811660c0840152600f54811660e0840152601054166101008301526108799182565b6040516102fa92919061374b565b34801561089357600080fd5b5061089c612402565b6040516102fa919061379d565b3480156108b557600080fd5b506103496108c43660046130cd565b6124dc565b3480156108d557600080fd5b506103496108e4366004613050565b612597565b3480156108f557600080fd5b506103776109043660046137ac565b6125e1565b34801561091557600080fd5b506103776109243660046137e1565b612685565b34801561093557600080fd5b506103496109443660046130cd565b612785565b34801561095557600080fd5b50610660612840565b34801561096a57600080fd5b50600254610349565b34801561097f57600080fd5b5061099361098e366004613050565b612869565b6040516102fa91906137f3565b3480156109ac57600080fd5b506103776109bb366004613050565b612959565b3480156109cc57600080fd5b506103776109db3660046132df565b6129de565b604051630ab0adeb60e31b81526000600482018190526001600160a01b03831660248301529073__$e3be7a02cc36c4fc59861378e374d62f33$__906355856f58906044015b602060405180830381865af4158015610a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190613806565b92915050565b604051637574819b60e11b8152600090819073__$cff02a526fac95f46ea22f43b5b483056b$__9063eae9033690610aab9084908790600401613823565b60006040518083038186803b158015610ac357600080fd5b505af4158015610ad7573d6000803e3d6000fd5b505060405163085bf74b60e21b815273__$cff02a526fac95f46ea22f43b5b483056b$__925063216fdd2c9150610b15906000908790600401613823565b6040805180830381865af4158015610b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b559190613861565b909250905073__$e3be7a02cc36c4fc59861378e374d62f33$__6344a8b1476000610b866040870160208801613050565b6040516001600160e01b031960e085901b16815260048101929092526001600160a01b0316602482015260440160006040518083038186803b158015610bcb57600080fd5b505af4158015610bdf573d6000803e3d6000fd5b50505050915091565b60405163296e0ffd60e21b815273__$95d87730e373cebb4ca4c1a2f026cb5496$__9063a5b83ff490610c22906000908590600401613885565b60006040518083038186803b158015610c3a57600080fd5b505af4158015610c4e573d6000803e3d6000fd5b505060405163dde714c560e01b815273__$95d87730e373cebb4ca4c1a2f026cb5496$__925063dde714c59150610c8c906000908590600401613885565b60006040518083038186803b158015610ca457600080fd5b505af4158015610cb8573d6000803e3d6000fd5b5073__$e3be7a02cc36c4fc59861378e374d62f33$__92506344a8b147915060009050610ceb6040850160208601613050565b6040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015b60006040518083038186803b158015610d3157600080fd5b505af4158015610d45573d6000803e3d6000fd5b5050505050565b60008073__$e3be7a02cc36c4fc59861378e374d62f33$__637919f151909160006001018581548110610d8157610d816138b9565b90600052602060002090600702016040518363ffffffff1660e01b8152600401610db5929190918252602082015260400190565b602060405180830381865af4158015610dd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6791906138cf565b60008060006001018381548110610e0f57610e0f6138b9565b600091825260208083206040805160e0810182526007949094029091018054845260018101549284019290925260028201546001600160a01b0390811684830152600383015416606084018190526004808401546080860152600584015460ff16151560a086015260069093015460c08501529051630ab0adeb60e31b8152918201939093526024810192909252915073__$e3be7a02cc36c4fc59861378e374d62f33$__906355856f5890604401602060405180830381865af4158015610edb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eff9190613806565b9392505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff16600081158015610f4c5750825b905060008267ffffffffffffffff166001148015610f695750303b155b905081158015610f77575080155b15610f955760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610fbf57845460ff60401b1916600160401b1785555b60405163a692d30d60e01b815273__$34e5abf8aed44cb09d2bd12ec9cc797973$__9063a692d30d90610ffb906000908b908b906004016138f0565b60006040518083038186803b15801561101357600080fd5b505af4158015611027573d6000803e3d6000fd5b50611042925061103d9150506020890189613050565b612a87565b61104a612a98565b611052612a98565b61105a612a98565b604051630bbe48b760e41b815273__$34e5abf8aed44cb09d2bd12ec9cc797973$__9063bbe48b7090611096906000908b908b906004016138f0565b60006040518083038186803b1580156110ae57600080fd5b505af41580156110c2573d6000803e3d6000fd5b50505050831561110c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b600080600101828154811061112c5761112c6138b9565b60009182526020918290206040805160e08101825260079093029091018054835260018101549383019390935260028301546001600160a01b039081168383015260038401541660608301526004808401546080840152600584015460ff16151560a084015260069093015460c0830152516343769a5160e01b815273__$137de846162d19becd7adae071bc6b8643$__926343769a5192610a26929091016132bf565b60405163010cc09b60e21b815273__$d7ed34c1233366b4d2093a06a83503a127$__90630433026c9061120a906000908590600401613a50565b60006040518083038186803b15801561122257600080fd5b505af4158015611236573d6000803e3d6000fd5b505060405163b8359e9760e01b815273__$d7ed34c1233366b4d2093a06a83503a127$__925063b8359e979150611274906000908590600401613a50565b60006040518083038186803b15801561128c57600080fd5b505af41580156112a0573d6000803e3d6000fd5b50506040516344a8b14760e01b81526000600482015233602482015273__$e3be7a02cc36c4fc59861378e374d62f33$__92506344a8b1479150604401610d19565b600a54600b54600091906112fe90670de0b6b3a7640000613a7a565b6113089190613a7a565b905090565b6000806001018281548110611324576113246138b9565b9060005260206000209060070201600401549050919050565b6005546010546040516370a0823160e01b81526001600160a01b039182166004820152600092839283929116906370a0823190602401602060405180830381865afa158015611390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b49190613a8d565b6006546010546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015611400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114249190613a8d565b6007546010546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a08231906024015b602060405180830381865afa158015611471573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114959190613a8d565b925092509250909192565b6114a8612aa0565b6114b182612b45565b6114bb8282612b4d565b5050565b6115136040518060e00160405280600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600015158152602001600081525090565b6001805483908110611527576115276138b9565b60009182526020918290206040805160e08101825260079093029091018054835260018101549383019390935260028301546001600160a01b0390811691830191909152600383015416606082015260048201546080820152600582015460ff16151560a082015260069091015460c082015292915050565b60006115aa612c0f565b50600080516020613de183398151915290565b6040516210aa0b60e31b8152600060048201528135602482015273__$7dc37f9f4797eb854780a74171eb2f4993$__90628550589060440160006040518083038186803b15801561160d57600080fd5b505af4158015611621573d6000803e3d6000fd5b50506040516364140a8360e01b8152600060048201528335602482015273__$7dc37f9f4797eb854780a74171eb2f4993$__92506364140a839150604401610d19565b604051632cc4a87f60e11b815273__$0e7f22a922c80796059a4f902a991c4252$__9063598950fe9061169e906000908590600401613b92565b60006040518083038186803b1580156116b657600080fd5b505af41580156116ca573d6000803e3d6000fd5b505060405163020a460760e61b815273__$0e7f22a922c80796059a4f902a991c4252$__925063829181c09150610d19906000908590600401613b92565b604051638046123560e01b815273__$102e258b2685b09f31e1bdc044a973265c$__90638046123590611742906000908590600401613a50565b60006040518083038186803b15801561175a57600080fd5b505af415801561176e573d6000803e3d6000fd5b50506040516387e2411560e01b815273__$102e258b2685b09f31e1bdc044a973265c$__92506387e241159150610d19906000908590600401613a50565b6117b4612f7c565b604080516001600160a01b038416600090815260208181529083902061012083018452805460c08401908152600182015460e08501528451600283018054606095810283018601885296820187815295968796608088019687959487946101008b0194919390928492849184018282801561184e57602002820191906000526020600020905b81548152602001906001019080831161183a575b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156118a657602002820191906000526020600020905b815481526020019060010190808311611892575b5050509190925250505090525081526040805180820182526004840180548252825160058601805460208082028401606090810188529684018281529781019795969495908701948492849184018282801561192157602002820191906000526020600020905b81548152602001906001019080831161190d575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561197957602002820191906000526020600020905b815481526020019060010190808311611965575b5050509190925250505090525090525081526005546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa1580156119db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ff9190613a8d565b81526006546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa158015611a51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a759190613a8d565b81526007546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa158015611ac7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aeb9190613a8d565b905292915050565b6040516351b4085960e01b8152600060048201528135602482015273__$d8cad9693442357ae3bd536a88ac8b2fda$__906351b408599060440160006040518083038186803b158015611b4557600080fd5b505af4158015611b59573d6000803e3d6000fd5b505060405163aa89ae9f60e01b8152600060048201528335602482015273__$d8cad9693442357ae3bd536a88ac8b2fda$__925063aa89ae9f9150604401610d19565b611ba4612c58565b611bae6000612c8a565b565b3380611bba612840565b6001600160a01b031614611bf15760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b611bfa81612c8a565b50565b611c05612c58565b60405163e57980dd60e01b815273__$32fe41b939f9fd8fb0430b5111f401f35c$__9063e57980dd90611c3f906000908590600401613bd0565b60006040518083038186803b158015611c5757600080fd5b505af4158015611c6b573d6000803e3d6000fd5b5050604051634752b3b360e01b815273__$32fe41b939f9fd8fb0430b5111f401f35c$__9250634752b3b39150610d19906000908590600401613bd0565b604051634721523f60e11b815273__$8d793199f9136f957f886f33c2c7f39b75$__90638e42a47e90611ce3906000908590600401613c3d565b60006040518083038186803b158015611cfb57600080fd5b505af4158015611d0f573d6000803e3d6000fd5b5050604051633ebc18a560e01b815273__$8d793199f9136f957f886f33c2c7f39b75$__9250633ebc18a59150611274906000908590600401613c3d565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b60408051634bc1120160e01b815260006004820152823560248201526020830135604482015290820135606482015273__$ef4190de80c3c7f10088bb7cf8a0baddca$__90634bc112019060840160006040518083038186803b158015611de857600080fd5b505af4158015611dfc573d6000803e3d6000fd5b5050604080516332f4053b60e01b815260006004820152843560248201526020850135604482015290840135606482015273__$ef4190de80c3c7f10088bb7cf8a0baddca$__92506332f4053b9150608401610d19565b60008060006001018381548110611e6c57611e6c6138b9565b600091825260208083206040805160e08101825260079094029091018054845260018101549284019290925260028201546001600160a01b039081168483015260038301541660608401526004808301546080850152600583015460ff16151560a085015260069092015460c08401525163f711fb6960e01b815291935073__$e3be7a02cc36c4fc59861378e374d62f33$__9263f711fb6992611f1292869101613ccb565b602060405180830381865af4158015611f2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eff9190613a8d565b600554600e546040516370a0823160e01b81526001600160a01b039182166004820152600092839283929116906370a0823190602401602060405180830381865afa158015611fa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fca9190613a8d565b600654600e546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015612016573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203a9190613a8d565b600754600e546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401611454565b612076612faa565b6001600160a01b03821660009081526020818152604091829020825160608082018552825482526001830154828501528451600284018054958602820183018752818701868152939694959487019491939092849284918401828280156120fc57602002820191906000526020600020905b8154815260200190600101908083116120e8575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561215457602002820191906000526020600020905b815481526020019060010190808311612140575b5050509190925250505090525092915050565b60405163a2c595c760e01b8152600060048201528135602482015273__$a7e4e07d6d9ebec01c8ddb11fc157c165f$__9063a2c595c79060440160006040518083038186803b1580156121b957600080fd5b505af41580156121cd573d6000803e3d6000fd5b5050604051630c29914560e41b8152600060048201528335602482015273__$a7e4e07d6d9ebec01c8ddb11fc157c165f$__925063c29914509150604401610d19565b60608167ffffffffffffffff81111561222b5761222b613155565b60405190808252806020026020018201604052801561225e57816020015b60608152602001906001900390816122495790505b50905060005b828110156122fe576122ce30858584818110612282576122826138b9565b90506020028101906122949190613ce0565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612cc292505050565b8282815181106122e0576122e06138b9565b602002602001018190525080806122f690613d27565b915050612264565b5092915050565b604051633eaefba560e11b815260006004820181905282356024830152602083013560448301529073__$31eeffd6d129c97860b62769217ca29194$__90637d5df74a9060640160006040518083038186803b15801561236457600080fd5b505af4158015612378573d6000803e3d6000fd5b505060405163e3e32d5160e01b815260006004820152843560248201526020850135604482015273__$31eeffd6d129c97860b62769217ca29194$__925063e3e32d5191506064015b602060405180830381865af41580156123de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190613a8d565b612475604051806101200160405280600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b031681525090565b50604080516101208101825260085481526009546020820152600a5491810191909152600b546060820152600c546080820152600d546001600160a01b0390811660a0830152600e54811660c0830152600f54811660e08301526010541661010082015290565b60008060010182815481106124f3576124f36138b9565b60009182526020918290206040805160e08101825260079093029091018054835260018101549383019390935260028301546001600160a01b039081168383015260038401541660608301526004808401546080840152600584015460ff16151560a084015260069093015460c08301525163a75bd97f60e01b815273__$137de846162d19becd7adae071bc6b8643$__9263a75bd97f926123c1929091016132bf565b60405163046dbd1360e11b81526000600482018190526001600160a01b03831660248301529073__$e3be7a02cc36c4fc59861378e374d62f33$__906308db7a26906044016123c1565b60405163c00a512760e01b815273__$3ea2d971f4db75ed849199519b7bbdd8b6$__9063c00a51279061261b906000908590600401613d40565b60006040518083038186803b15801561263357600080fd5b505af4158015612647573d6000803e3d6000fd5b505060405163af54844160e01b815273__$3ea2d971f4db75ed849199519b7bbdd8b6$__925063af5484419150610d19906000908590600401613d40565b6040516355e37cf560e11b815273__$07e86bcef4998d4b87078f4c72fdc88121$__9063abc6f9ea906126bf906000908590600401613d74565b60006040518083038186803b1580156126d757600080fd5b505af41580156126eb573d6000803e3d6000fd5b5050604051635fc2d93160e01b815273__$07e86bcef4998d4b87078f4c72fdc88121$__9250635fc2d9319150612729906000908590600401613d74565b60006040518083038186803b15801561274157600080fd5b505af4158015612755573d6000803e3d6000fd5b5073__$e3be7a02cc36c4fc59861378e374d62f33$__92506344a8b147915060009050610ceb6020850185613050565b600080600101828154811061279c5761279c6138b9565b60009182526020918290206040805160e08101825260079093029091018054835260018101549383019390935260028301546001600160a01b039081168383015260038401541660608301526004808401546080840152600584015460ff16151560a084015260069093015460c0830152516301e8b8ad60e71b815273__$137de846162d19becd7adae071bc6b8643$__9263f45c5680926123c1929091016132bf565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00611d72565b612871612fe5565b6001600160a01b0382166000908152602081815260409182902082518084018452600482018054825284516005909301805460608187028601810188529685018181529396929587019493919284929184918401828280156120fc57602002820191906000526020600020908154815260200190600101908083116120e85750505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156121545760200282019190600052602060002090815481526020019060010190808311612140575050509190925250505090525092915050565b612961612c58565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556129a5611d4d565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b604051635792057f60e11b8152600060048201528135602482015273__$65756fc1cb7d5518f865a4f2165258b0ec$__9063af240afe9060440160006040518083038186803b158015612a3057600080fd5b505af4158015612a44573d6000803e3d6000fd5b50506040516320e9b9f960e11b8152600060048201528335602482015273__$65756fc1cb7d5518f865a4f2165258b0ec$__92506341d373f29150604401610d19565b612a8f612d38565b611bfa81612d81565b611bae612d38565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480612b2757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612b1b600080516020613de1833981519152546001600160a01b031690565b6001600160a01b031614155b15611bae5760405163703e46dd60e11b815260040160405180910390fd5b611bfa612c58565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612ba7575060408051601f3d908101601f19168201909252612ba491810190613a8d565b60015b612bcf57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401611be8565b600080516020613de18339815191528114612c0057604051632a87526960e21b815260048101829052602401611be8565b612c0a8383612db3565b505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611bae5760405163703e46dd60e11b815260040160405180910390fd5b33612c61611d4d565b6001600160a01b031614611bae5760405163118cdaa760e01b8152336004820152602401611be8565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556114bb82612e09565b6060600080846001600160a01b031684604051612cdf9190613dc4565b600060405180830381855af49150503d8060008114612d1a576040519150601f19603f3d011682016040523d82523d6000602084013e612d1f565b606091505b5091509150612d2f858383612e7a565b95945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16611bae57604051631afcd79f60e31b815260040160405180910390fd5b612d89612d38565b6001600160a01b038116611bf157604051631e4fbdf760e01b815260006004820152602401611be8565b612dbc82612ecf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115612e0157612c0a8282612cc2565b6114bb612f34565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b606082612e8f57612e8a82612f53565b610eff565b8151158015612ea657506001600160a01b0384163b155b156122fe57604051639996b31560e01b81526001600160a01b0385166004820152602401611be8565b806001600160a01b03163b600003612f0557604051634c9c8ce360e01b81526001600160a01b0382166004820152602401611be8565b600080516020613de183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b3415611bae5760405163b398979f60e01b815260040160405180910390fd5b805115612f635780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060800160405280612f8f613014565b81526020016000815260200160008152602001600081525090565b60405180606001604052806000815260200160008152602001612fe0604051806040016040528060608152602001606081525090565b905290565b604051806040016040528060008152602001612fe0604051806040016040528060608152602001606081525090565b6040518060400160405280613027612faa565b8152602001612fe0612fe5565b80356001600160a01b038116811461304b57600080fd5b919050565b60006020828403121561306257600080fd5b610eff82613034565b60006060828403121561307d57600080fd5b50919050565b60006060828403121561309557600080fd5b610eff838361306b565b60006040828403121561307d57600080fd5b6000604082840312156130c357600080fd5b610eff838361309f565b6000602082840312156130df57600080fd5b5035919050565b602081016004831061310857634e487b7160e01b600052602160045260246000fd5b91905290565b6000808284036101c081121561312357600080fd5b6101208082121561313357600080fd5b84935060a061011f198301121561314957600080fd5b92959390920193505050565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff8111828210171561318e5761318e613155565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156131bd576131bd613155565b604052919050565b600080604083850312156131d857600080fd5b6131e183613034565b915060208084013567ffffffffffffffff808211156131ff57600080fd5b818601915086601f83011261321357600080fd5b81358181111561322557613225613155565b613237601f8201601f19168501613194565b9150808252878482850101111561324d57600080fd5b80848401858401376000848284010152508093505050509250929050565b8051825260208101516020830152604081015160018060a01b03808216604085015280606084015116606085015250506080810151608083015260a0810151151560a083015260c081015160c08301525050565b60e08101610a67828461326b565b60006020828403121561307d57600080fd5b6000602082840312156132f157600080fd5b610eff83836132cd565b60006020828403121561330d57600080fd5b813567ffffffffffffffff81111561332457600080fd5b6133308482850161306b565b949350505050565b600081518084526020808501945080840160005b838110156133685781518752958201959082019060010161334c565b509495945050505050565b60008151604084526133886040850182613338565b905060208301518482036020860152612d2f8282613338565b805182526020810151602083015260006040820151606060408501526133306060850182613373565b8051825260006020820151604060208501526133306040850182613373565b6020815260008251608060208401528051604060a085015261340e60e08501826133a1565b905060208201519150609f198482030160c085015261342d81836133ca565b9150506020840151604084015260408401516060840152606084015160808401528091505092915050565b600060e0828403121561307d57600080fd5b8015158114611bfa57600080fd5b6000602080838503121561348b57600080fd5b823567ffffffffffffffff808211156134a357600080fd5b9084019060a082870312156134b757600080fd5b6134bf61316b565b6134c883613034565b815283830135848201526040830135604082015260608301356134ea8161346a565b606082015260808301358281111561350157600080fd5b80840193505086601f84011261351657600080fd5b82358281111561352857613528613155565b8060051b9250613539858401613194565b818152928401850192858101908985111561355357600080fd5b948601945b8486101561357157853582529486019490860190613558565b60808401525090979650505050505050565b602081526000610eff60208301846133a1565b600080602083850312156135a957600080fd5b823567ffffffffffffffff808211156135c157600080fd5b818501915085601f8301126135d557600080fd5b8135818111156135e457600080fd5b8660208260051b85010111156135f957600080fd5b60209290920196919550909350505050565b60005b8381101561362657818101518382015260200161360e565b50506000910152565b6000815180845261364781602086016020860161360b565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156136b057603f1988860301845261369e85835161362f565b94509285019290850190600101613682565b5092979650505050505050565b602081526000610eff602083018461362f565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160018060a01b0380821660a08501528060c08401511660c08501528060e08401511660e0850152505061010080820151613745828501826001600160a01b03169052565b50505050565b82516001600160a01b039081168252602080850151821690830152604080850151821690830152606080850151821690830152608080850151909116908201526101c08101610eff60a08301846136d0565b6101208101610a6782846136d0565b6000602082840312156137be57600080fd5b813567ffffffffffffffff8111156137d557600080fd5b6133308482850161309f565b60006080828403121561307d57600080fd5b602081526000610eff60208301846133ca565b60006020828403121561381857600080fd5b8151610eff8161346a565b828152813560208083019190915260808201906001600160a01b039061384a908501613034565b166040830152604083013560608301529392505050565b6000806040838503121561387457600080fd5b505080516020909101519092909150565b828152813560208083019190915260608201906001600160a01b03906138ac908501613034565b1660408301529392505050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156138e157600080fd5b815160048110610eff57600080fd5b8381526101e081016001600160a01b038061390a86613034565b1660208401528061391d60208701613034565b1660408401525061393060408501613034565b6001600160a01b03811660608401525061394c60608501613034565b6001600160a01b03811660808401525061396860808501613034565b6001600160a01b03811660a08401525061398460a08501613034565b6001600160a01b03811660c0840152506139a060c08501613034565b6001600160a01b03811660e0840152506139bc60e08501613034565b6101006139d3818501836001600160a01b03169052565b6139de818701613034565b9150506139f76101208401826001600160a01b03169052565b5082356101408301526020830135610160830152604083013561018083015260608301356101a083015260808301356101c0830152613330565b6001600160a01b03613a4282613034565b168252602090810135910152565b82815260608101610eff6020830184613a31565b634e487b7160e01b600052601160045260246000fd5b81810381811115610a6757610a67613a64565b600060208284031215613a9f57600080fd5b5051919050565b60008235603e19833603018112613abc57600080fd5b90910192915050565b6000808335601e19843603018112613adc57600080fd5b830160208101925035905067ffffffffffffffff811115613afc57600080fd5b8060051b3603821315613b0e57600080fd5b9250929050565b81835260006001600160fb1b03831115613b2e57600080fd5b8260051b80836020870137939093016020019392505050565b6000613b538283613ac5565b60408552613b65604086018284613b15565b915050613b756020840184613ac5565b8583036020870152613b88838284613b15565b9695505050505050565b8281526040602082015281356040820152602082013560608201526000613bbc6040840184613aa6565b60606080840152612d2f60a0840182613b47565b82815261010081016001600160a01b0380613bea85613034565b16602084015280613bfd60208601613034565b166040840152506040830135606083015260608301356080830152608083013560a083015260a083013560c083015260c083013560e08301529392505050565b8281526000602060408184015260e0830160018060a01b038551166040850152818501516060850152604085015160808501526060850151151560a0850152608085015160a060c0860152818151808452610100870191508483019350600092505b80831015613cbf5783518252928401926001929092019190840190613c9f565b50979650505050505050565b8281526101008101610eff602083018461326b565b6000808335601e19843603018112613cf757600080fd5b83018035915067ffffffffffffffff821115613d1257600080fd5b602001915036819003821315613b0e57600080fd5b600060018201613d3957613d39613a64565b5060010190565b82815260406020820152813560408201526000613d606020840184613aa6565b60406060840152612d2f6080840182613b47565b82815260a081016001600160a01b03613d8c84613034565b16602083015260208301356040830152604083013560608301526060830135613db48161346a565b8015156080840152509392505050565b60008251613dd681846020870161360b565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220f6a06ce8585aea578e382cefcfa1962c302e707f6194e8d6aab42ee98d2e23ec64736f6c63430008140033"; type SizeConstructorParams = | [linkLibraryAddresses: SizeLibraryAddresses, signer?: Signer]