@dolomite-exchange/dolomite-margin 0.2.6 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/contracts/Account.json +11 -11
- package/build/contracts/Actions.json +11 -11
- package/build/contracts/Address.json +1 -1
- package/build/contracts/Admin.json +23 -23
- package/build/contracts/AdminImpl.json +35 -307
- package/build/contracts/AdvancedMath.json +7 -7
- package/build/contracts/AmmRebalancerProxy.json +577 -621
- package/build/contracts/AmmRebalancerProxyV1.json +78 -32
- package/build/contracts/Babylonian.json +1 -1
- package/build/contracts/Bits.json +9 -9
- package/build/contracts/Cache.json +13 -13
- package/build/contracts/ChainlinkPriceOracleV1.json +16 -16
- package/build/contracts/Context.json +1 -1
- package/build/contracts/CustomTestToken.json +9 -9
- package/build/contracts/Decimal.json +9 -9
- package/build/contracts/DelayedMultiSig.json +9 -9
- package/build/contracts/DolomiteAmmERC20.json +11 -11
- package/build/contracts/DolomiteAmmFactory.json +14 -52
- package/build/contracts/DolomiteAmmLibrary.json +24 -24
- package/build/contracts/DolomiteAmmPair.json +27 -27
- package/build/contracts/DolomiteAmmRouterProxy.json +30 -363
- package/build/contracts/DolomiteMargin.json +21 -67
- package/build/contracts/DoubleExponentInterestSetter.json +15 -21
- package/build/contracts/EnumerableSet.json +7 -7
- package/build/contracts/ErroringOmiseToken.json +9 -9
- package/build/contracts/ErroringToken.json +10 -10
- package/build/contracts/Events.json +17 -17
- package/build/contracts/ExcessivelySafeCall.json +35 -35
- package/build/contracts/Exchange.json +15 -15
- package/build/contracts/Expiry.json +36 -36
- package/build/contracts/Getters.json +33 -33
- package/build/contracts/IAutoTrader.json +9 -9
- package/build/contracts/ICallee.json +7 -7
- package/build/contracts/IChainlinkAggregator.json +5 -5
- package/build/contracts/IDolomiteAmmERC20.json +5 -5
- package/build/contracts/IDolomiteAmmFactory.json +9 -9
- package/build/contracts/IDolomiteAmmPair.json +9 -9
- package/build/contracts/IDolomiteMargin.json +23 -23
- package/build/contracts/IERC20.json +1 -1
- package/build/contracts/IERC20Detailed.json +5 -5
- package/build/contracts/IExchangeWrapper.json +5 -5
- package/build/contracts/IExpiry.json +9 -9
- package/build/contracts/IInterestSetter.json +7 -7
- package/build/contracts/ILiquidationCallback.json +7 -7
- package/build/contracts/IMakerOracle.json +5 -5
- package/build/contracts/IOasisDex.json +5 -5
- package/build/contracts/IPriceOracle.json +7 -7
- package/build/contracts/IRecyclable.json +9 -9
- package/build/contracts/ITransferProxy.json +5 -5
- package/build/contracts/IUniswapV2Callee.json +5 -5
- package/build/contracts/IUniswapV2Factory.json +5 -5
- package/build/contracts/IUniswapV2Pair.json +5 -5
- package/build/contracts/IUniswapV2Router.json +5 -5
- package/build/contracts/IWETH.json +5 -5
- package/build/contracts/Interest.json +15 -15
- package/build/contracts/LiquidateOrVaporizeImpl.json +32 -83
- package/build/contracts/LiquidatorProxyHelper.json +23 -23
- package/build/contracts/LiquidatorProxyV1.json +30 -36
- package/build/contracts/LiquidatorProxyV1WithAmm.json +49 -105
- package/build/contracts/Math.json +1 -1
- package/build/contracts/Migrations.json +8 -14
- package/build/contracts/Monetary.json +7 -7
- package/build/contracts/MultiCall.json +8 -14
- package/build/contracts/MultiSig.json +7 -7
- package/build/contracts/OmiseToken.json +8 -8
- package/build/contracts/OnlyDolomiteMargin.json +11 -11
- package/build/contracts/Operation.json +15 -15
- package/build/contracts/OperationImpl.json +39 -47
- package/build/contracts/Ownable.json +1 -1
- package/build/contracts/PartiallyDelayedMultiSig.json +9 -9
- package/build/contracts/PayableProxy.json +17 -23
- package/build/contracts/Permission.json +11 -11
- package/build/contracts/PolynomialInterestSetter.json +13 -13
- package/build/contracts/RecyclableTokenProxy.json +25 -25
- package/build/contracts/ReentrancyGuard.json +1 -1
- package/build/contracts/Require.json +7 -7
- package/build/contracts/SafeERC20.json +1 -1
- package/build/contracts/SafeETH.json +7 -7
- package/build/contracts/SafeLiquidationCallback.json +17 -17
- package/build/contracts/SafeMath.json +1 -1
- package/build/contracts/SignedOperationProxy.json +21 -104
- package/build/contracts/SimpleFeeOwner.json +18 -63
- package/build/contracts/State.json +9 -9
- package/build/contracts/Storage.json +37 -37
- package/build/contracts/TestAmmRebalancerProxy.json +32 -58
- package/build/contracts/TestAutoTrader.json +22 -22
- package/build/contracts/TestBtcUsdChainlinkAggregator.json +10 -10
- package/build/contracts/TestCallee.json +19 -19
- package/build/contracts/TestChainlinkPriceOracleV1.json +10 -94
- package/build/contracts/TestCounter.json +7 -7
- package/build/contracts/TestDaiUsdChainlinkAggregator.json +11 -11
- package/build/contracts/TestDolomiteMargin.json +22 -22
- package/build/contracts/TestDoubleExponentInterestSetter.json +10 -10
- package/build/contracts/TestEthUsdChainlinkAggregator.json +11 -11
- package/build/contracts/TestExchangeWrapper.json +28 -28
- package/build/contracts/TestInterestSetter.json +13 -13
- package/build/contracts/TestLib.json +22 -22
- package/build/contracts/TestLinkUsdChainlinkAggregator.json +11 -11
- package/build/contracts/TestLiquidateCallback.json +719 -719
- package/build/contracts/TestLiquidationCallback.json +13 -13
- package/build/contracts/TestLrcEthChainlinkAggregator.json +11 -11
- package/build/contracts/TestMakerOracle.json +10 -10
- package/build/contracts/TestMaticUsdChainlinkAggregator.json +10 -10
- package/build/contracts/TestOasisDex.json +12 -12
- package/build/contracts/TestOperationImpl.json +14 -14
- package/build/contracts/TestPolynomialInterestSetter.json +10 -10
- package/build/contracts/TestPriceAggregator.json +9 -9
- package/build/contracts/TestPriceOracle.json +13 -13
- package/build/contracts/TestRecyclableToken.json +9 -9
- package/build/contracts/TestSimpleCallee.json +15 -15
- package/build/contracts/TestToken.json +9 -9
- package/build/contracts/TestTrader.json +17 -17
- package/build/contracts/TestUniswapAmmRebalancerProxy.json +16 -16
- package/build/contracts/TestUsdcUsdChainlinkAggregator.json +11 -11
- package/build/contracts/TestWETH.json +9 -9
- package/build/contracts/Time.json +9 -9
- package/build/contracts/Token.json +9 -9
- package/build/contracts/TokenA.json +10 -10
- package/build/contracts/TokenB.json +10 -10
- package/build/contracts/TokenC.json +10 -10
- package/build/contracts/TokenD.json +10 -10
- package/build/contracts/TokenE.json +10 -10
- package/build/contracts/TokenF.json +10 -10
- package/build/contracts/TransferProxy.json +22 -28
- package/build/contracts/TypedSignature.json +9 -9
- package/build/contracts/Types.json +9 -9
- package/build/contracts/UQ112x112.json +7 -7
- package/build/contracts/UniswapV2ERC20.json +7 -7
- package/build/contracts/UniswapV2Factory.json +12 -12
- package/build/contracts/UniswapV2Library.json +20 -20
- package/build/contracts/UniswapV2Pair.json +17 -17
- package/build/contracts/UniswapV2Router02.json +16 -16
- package/build/contracts/WETH9.json +1 -1
- package/contracts/external/amm/DolomiteAmmERC20.sol +135 -0
- package/contracts/external/amm/DolomiteAmmFactory.sol +122 -0
- package/contracts/external/amm/DolomiteAmmPair.sol +573 -0
- package/contracts/external/amm/SimpleFeeOwner.sol +107 -0
- package/contracts/external/helpers/LiquidatorProxyHelper.sol +252 -0
- package/contracts/external/helpers/OnlyDolomiteMargin.sol +63 -0
- package/contracts/external/interestsetters/DoubleExponentInterestSetter.sol +212 -0
- package/contracts/external/interestsetters/PolynomialInterestSetter.sol +205 -0
- package/contracts/external/interfaces/IChainlinkAggregator.sol +33 -0
- package/contracts/external/interfaces/IDolomiteAmmERC20.sol +52 -0
- package/contracts/external/interfaces/IDolomiteAmmFactory.sol +42 -0
- package/contracts/external/interfaces/IDolomiteAmmPair.sol +116 -0
- package/contracts/external/interfaces/IExpiry.sol +70 -0
- package/contracts/external/interfaces/IMakerOracle.sol +52 -0
- package/contracts/external/interfaces/IOasisDex.sol +326 -0
- package/contracts/external/interfaces/ITransferProxy.sol +53 -0
- package/contracts/external/interfaces/IUniswapV2Router.sol +134 -0
- package/contracts/external/lib/AdvancedMath.sol +23 -0
- package/contracts/external/lib/DolomiteAmmLibrary.sol +323 -0
- package/contracts/external/lib/TypedSignature.sol +120 -0
- package/contracts/external/lib/UQ112x112.sol +22 -0
- package/contracts/external/multisig/DelayedMultiSig.sol +206 -0
- package/contracts/external/multisig/MultiSig.sol +571 -0
- package/contracts/external/multisig/PartiallyDelayedMultiSig.sol +174 -0
- package/contracts/external/oracles/ChainlinkPriceOracleV1.sol +197 -0
- package/contracts/external/oracles/TestChainlinkPriceOracleV1.sol +98 -0
- package/contracts/external/proxies/AmmRebalancerProxyV1.sol +465 -0
- package/contracts/external/proxies/DolomiteAmmRouterProxy.sol +877 -0
- package/contracts/external/proxies/LiquidatorProxyV1.sol +507 -0
- package/contracts/external/proxies/LiquidatorProxyV1WithAmm.sol +574 -0
- package/contracts/external/proxies/PayableProxy.sol +146 -0
- package/contracts/external/proxies/RecyclableTokenProxy.sol +463 -0
- package/contracts/external/proxies/SignedOperationProxy.sol +553 -0
- package/contracts/external/proxies/TransferProxy.sol +207 -0
- package/contracts/external/traders/Expiry.sol +532 -0
- package/contracts/external/uniswap-v2/UniswapV2ERC20.sol +118 -0
- package/contracts/external/uniswap-v2/UniswapV2Factory.sol +67 -0
- package/contracts/external/uniswap-v2/UniswapV2Pair.sol +283 -0
- package/contracts/external/uniswap-v2/UniswapV2Router02.sol +566 -0
- package/contracts/external/uniswap-v2/interfaces/IUniswapV2Callee.sol +13 -0
- package/contracts/external/uniswap-v2/interfaces/IUniswapV2Factory.sol +18 -0
- package/contracts/external/uniswap-v2/interfaces/IUniswapV2Pair.sol +67 -0
- package/contracts/external/uniswap-v2/interfaces/IWETH.sol +7 -0
- package/contracts/external/uniswap-v2/libraries/SafeETH.sol +29 -0
- package/contracts/external/uniswap-v2/libraries/UniswapV2Library.sol +117 -0
- package/contracts/external/utils/MultiCall.sol +95 -0
- package/contracts/protocol/impl/artifacts/OperationImpl.json +80 -0
- package/contracts/protocol/impl/artifacts/OperationImpl_metadata.json +193 -0
- package/dist/build/published_contracts/AdminImpl.json +2 -2
- package/dist/build/published_contracts/AmmRebalancerProxyV1.json +5 -0
- package/dist/build/published_contracts/ChainlinkPriceOracleV1.json +1 -1
- package/dist/build/published_contracts/DolomiteAmmFactory.json +1 -1
- package/dist/build/published_contracts/DolomiteAmmRouterProxy.json +1 -1
- package/dist/build/published_contracts/DoubleExponentInterestSetter.json +2 -2
- package/dist/build/published_contracts/Expiry.json +1 -1
- package/dist/build/published_contracts/LiquidatorProxyV1.json +1 -1
- package/dist/build/published_contracts/LiquidatorProxyV1WithAmm.json +1 -1
- package/dist/build/published_contracts/MultiCall.json +1 -1
- package/dist/build/published_contracts/PayableProxy.json +2 -2
- package/dist/build/published_contracts/SignedOperationProxy.json +2 -2
- package/dist/build/published_contracts/SimpleFeeOwner.json +1 -1
- package/dist/build/published_contracts/TestUniswapAmmRebalancerProxy.json +140 -0
- package/dist/build/published_contracts/TransferProxy.json +1 -1
- package/dist/src/lib/Contracts.d.ts +3 -1
- package/dist/src/lib/Contracts.js +7 -3
- package/dist/src/lib/Contracts.js.map +1 -1
- package/package.json +2 -1
|
@@ -331,15 +331,15 @@
|
|
|
331
331
|
"type": "function"
|
|
332
332
|
}
|
|
333
333
|
],
|
|
334
|
-
"metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dolomiteMargin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dolomiteAmmFactory\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"routers\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"initCodeHashes\",\"type\":\"bytes32[]\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"RouterInitCodeHashSet\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOLOMITE_AMM_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOLOMITE_MARGIN\",\"outputs\":[{\"internalType\":\"contract IDolomiteMargin\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"FILE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"ROUTER_TO_INIT_CODE_HASH_MAP\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"routers\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"initCodeHashes\",\"type\":\"bytes32[]\"}],\"name\":\"adminSetRouterInitCodeHashes\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"makerToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"takerToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"orderData\",\"type\":\"bytes\"}],\"name\":\"exchange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"makerToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"takerToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"desiredMakerToken\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"orderData\",\"type\":\"bytes\"}],\"name\":\"getExchangeCost\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"dolomitePath\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenB\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"otherRouter\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"otherPath\",\"type\":\"bytes\"}],\"internalType\":\"struct AmmRebalancerProxyV1.RebalanceParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"performRebalance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Dolomite * Contract for re-balancing the Dolomite AMM pools against other UniswapV2Router compatible pools\",\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"AmmRebalancerProxyV1\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/proxies/AmmRebalancerProxyV1.sol\":\"AmmRebalancerProxyV1\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/helpers/OnlyDolomiteMargin.sol\":{\"keccak256\":\"0xfc9ce2f5a274ec66668c133f09fe213bc1a6a739f9147f4357a3493094de8deb\",\"urls\":[\"bzz-raw://e45442587f111fa0d85dd85a4e07993f5fecd1afce4f457ed21441f8b0abb937\",\"dweb:/ipfs/QmaNq3j3PUwb8Wrx2gEmFFsVa2GByDEkDCPGdwo2qvMeKh\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/IDolomiteAmmFactory.sol\":{\"keccak256\":\"0xf5fd97ee3591ff30a3576d6d58847b5f6e156639578bed3827313a2c70823b78\",\"urls\":[\"bzz-raw://f9da41065f9b3b559bfc588cea01480f1c64ee7b1f1a86e54868f464fdfe2160\",\"dweb:/ipfs/QmWeBi2zSdPCENVV4fvCQ49HgnwLGxd3WS9sGMC4vR5NrB\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/IDolomiteAmmPair.sol\":{\"keccak256\":\"0xe2272c233467a78460e681419f0acdc765de0ad5357d3b768665f289941ccd47\",\"urls\":[\"bzz-raw://114f1c797f4e7e803b0764ae7107a2279c3da806450287c9e5600211faeeab57\",\"dweb:/ipfs/QmUoLx1rGgCdX5ScsUkp4NsSZLyVWdKsVKeXuPCtcrAvLn\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/IUniswapV2Router.sol\":{\"keccak256\":\"0xbb1dded2be890864da47836668261c2c655ec63a5fe6ccaa5da61a6376ebb03c\",\"urls\":[\"bzz-raw://8243cb7e11c97c7d95ad096d962f2be45bc1caccf6fc88a6ac0b3287031b8d1d\",\"dweb:/ipfs/QmbZuXgtDspV7P4qooQygPcoBxvoLS7A5xgJpXAsfsXrzS\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/DolomiteAmmLibrary.sol\":{\"keccak256\":\"0xdaad95bfa237ec524e85dffa48cea183272a99cec9368b1e66b42825bb738004\",\"urls\":[\"bzz-raw://cbce9e6b3941fac7894d6bcad4be81b12ec972866a380d9c1199898b17303163\",\"dweb:/ipfs/QmfREVS3yoW9eMCEbb4q6juoAqVE6c8yVZKFT1tMAQEASj\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/TypedSignature.sol\":{\"keccak256\":\"0x4b4eb5fd2869d6c410948f78163773442c11bc82e393307e41359bbdb21577bf\",\"urls\":[\"bzz-raw://9c9c3abae44173086bc08f5479fbc67151d5905f60e1032ec6f9e40f841f3365\",\"dweb:/ipfs/QmbsQRX3gmcpimjFEW5ULJVavHQtViyg7NSQ2Q8Qcu6F6V\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/proxies/AmmRebalancerProxyV1.sol\":{\"keccak256\":\"0x88cb8f402a15e7079754a260e121a52ba47a681d0a3decb3ad608820abfab0e7\",\"urls\":[\"bzz-raw://3acc5a6aeafb90b2d46a8900d5797e8288b757233a2b2375543e2cbe689ea830\",\"dweb:/ipfs/QmSjMxkUR1VHvGYdGasGGqSXts9nUxw38u8T7nETG2czJ4\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/uniswap-v2/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x022ea15b611c155e236053a484d21223ae6f74da3828379cd8a34a16649b5945\",\"urls\":[\"bzz-raw://41979b601b10b34937f2f5939ab5c5240759c3434e405bf84a69ef94a1612454\",\"dweb:/ipfs/QmbK4y63kjtpbxFgResFo9K2bEhNxcxoTqddpJXeHxwqcT\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IDolomiteMargin.sol\":{\"keccak256\":\"0x1e73364879c267fdd2bfd871e62ee58ee3d65fbef3b71e3cc104fbff499eca6c\",\"urls\":[\"bzz-raw://e3b1327980a5949afd52cff4713f47ee4fdee9a8b376ceaa3402f5c9696b8c1b\",\"dweb:/ipfs/QmbhQzVEdaraPJizT5DTtk6CDzH3guHNipHW5T23uTtFkX\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IExchangeWrapper.sol\":{\"keccak256\":\"0xfca7f5635821bbc8ff21db6982471a5f20071365496b74a8202e59494d0f327f\",\"urls\":[\"bzz-raw://eb289cb96c83a3ff7fd72d9a646694d324ee955874ef61e986850459b5841d16\",\"dweb:/ipfs/QmeeiaqShMqWpttPJ3GuDwxFzmq235HMVG7vDnLWnCupaZ\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x0ab9a3fabc89984dff748af63d4319ee134051de2d7fc560e34ebaac86198396\",\"urls\":[\"bzz-raw://ab67f499a8ef83dc7e7cf7176a0f66eced40fa228eda8dd2d47e066ab985cf42\",\"dweb:/ipfs/QmXRHbsEYxr2Qsfsj5psXGV5LaPZHuzLiEXzSQJ77WSE27\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x44ec62b766a88a2f65267991e76cab88711e733b826dc9e578cb6ad6b38b2445\",\"urls\":[\"bzz-raw://731a8d44e57c9dcd7fbdefc37a6b5889c0d06defb3bd66b921b2a7db0edf0103\",\"dweb:/ipfs/QmcVbXc9oi5DMxjPtsBF76oJzD6zVjm7RuXgJfP3Goqrrb\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x425bf5764368faca16cc30a64b79d9bbe01fd8150444b58a464971c32450bd85\",\"urls\":[\"bzz-raw://064baf3155da634c5c80cea70bba0dda7a33af934b34f75f596961b4ab9aeafe\",\"dweb:/ipfs/QmTUHXoi9L6CkERyfhFs1jhxU66u2sbc6XRR5cH4TeHEqL\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0x1e6ff383f285e311d07374edda353e14ac4f29201726b0062a2f046c1a2b482c\",\"urls\":[\"bzz-raw://fd11c5db01039bf2c95f3561b08d271b80b7b1cb9fd7f75da887f7609807c5a7\",\"dweb:/ipfs/QmcY6CugdEHaYUa8ZKSnUDhvtVuoLfpDscZcmC91koAn1t\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0x66990bbe3c58d0edf57d3f67ab5280e2a53958ce44f75c335c4c50542321bccb\",\"urls\":[\"bzz-raw://724cfdb5c99121aab5262679e46766a2883e344749870d7dbfa92d1617f68bf2\",\"dweb:/ipfs/QmYjAsS45f6UG2u3zuTks2HVfMYtyFCVMgUvD7Gt7XtU3R\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x9710b0ab43cc2d964d8722a0aabbedbf7e9d4756dcc0b4ab7c46c1ee68653042\",\"urls\":[\"bzz-raw://2405593d37f0f224bfca556f01634a9755bb0ed626f74dd15293106a8b4dd7d3\",\"dweb:/ipfs/QmTZ16S336jsoDnK5p3vAZRzimBkmdEJibncHVBJxBt469\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x73e75454568c5dfc3bdcf7dbf2ddce6ab8d3d317618bc1f1957f7667e15d3799\",\"urls\":[\"bzz-raw://7b1c8a9a79c8ffdbb0fa633f713ae3dfeac93b31d2b1639614ac32d473fb8250\",\"dweb:/ipfs/QmfARP93W2mgeVwD9Lkd3yVmbCLF2Mos7o8HJ1x6WYQmxZ\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Math.sol\":{\"keccak256\":\"0x0c0c913b6ccdb69063f9ec84879fcad20a1ee6f44402c9f5ec2b4f5b9f2fa16b\",\"urls\":[\"bzz-raw://89b32eefb57e5e63ad8c6e079ae7bf2d2c8622776cd45af0cf304e1cafd6e078\",\"dweb:/ipfs/Qmcj7yRnYuTgKC3ZqZqe8rynHGYVDS3UrFExcVGcqeaDHY\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0xe641662503ea29ca959e84674188c3e9deaaf64c5623fb9560a4301c521ca1d3\",\"urls\":[\"bzz-raw://b10a04c7d014b99eb792c8c774e203c846d070b30cf0b715325fc07838ed6a6d\",\"dweb:/ipfs/QmUqZWnbchfEY9jM647yQamHe4GzspfUeRQF9k2nn1Hixd\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0xf930fbde3ab43ec8f079dbad062453b502542f53b7eec670c8e86c7a2e47dd9a\",\"urls\":[\"bzz-raw://e1c402fc55471e8372be478e99f91c28373f096e31f0ef1d5072dfdb81541c29\",\"dweb:/ipfs/QmTc8WSfFCbxNQqNpq1vptUVFxteKQ8HWEhyXREyPZ2neu\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x233d6ebf965711bf980f4bb2e672fb1a11b4b879fd41c884b3c2b704417d0d0c\",\"urls\":[\"bzz-raw://6478ff81706d531f9438b96274a7b904abbbd9c631540c68c6a89c3accf27abf\",\"dweb:/ipfs/QmWe9vkz3qwVjrcbmcTL8wgkjLPsrEqxcqPJL9ujM8PPbp\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0xd7bcae9e3c570544fc946a00cc7695106a64c20bc130d0183612c0410a531d19\",\"urls\":[\"bzz-raw://0ff5ffd6abb9ed223a64128c131afd962bec07fb9867cb62593906b339c76920\",\"dweb:/ipfs/QmbTrJL4bekvBqqaw6wXnBhYzS9uAqULSWF2VzW4cdfsM5\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xab134538648a2e223a7fe61db03c14f687657a5d37147f93c9088f11735aa311\",\"urls\":[\"bzz-raw://79dc7d2b30576d2349b99267642ac8d5fb7939c920b8d8045379d3614238bdc3\",\"dweb:/ipfs/QmaQJYg1nirHoWSC6G38Cjsk9pZBzEaNrGXKqTsvAzbyES\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0x6fb9d7889769d7cc161225f9ef7a90e468ba9788b253816f8d8b6894d3472c24\",\"urls\":[\"bzz-raw://cf4c00fc3c37cc5acf0c82ec6fd97bab67d72c2567fdc0ebf023d9c09b30a08e\",\"dweb:/ipfs/Qmb7TChG6DsEDX7LooJ4vmxot19f7VXX8S1zUGPeJTWbwZ\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0x6f2c9955d65c522b80f4b8792f076512d2df947d2112cbc4d98a4781ed42ede2\",\"urls\":[\"bzz-raw://7d8ec81683520c06baeef3f7e06cd82bd6fd5fa611f26857f475f6c829540aff\",\"dweb:/ipfs/QmTDkFzKnrpiV1UKnSoiZAHPuguWzokrr4pFbSPvyaSo56\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x1a8e5072509c5ea7365eb1d48030b9be865140c8fb779968da0a459a0e174a11\",\"urls\":[\"bzz-raw://03335b7b07c7c8c8d613cfdd8ec39a0b5ec133ee510bf2fe6cc5a496767bef4b\",\"dweb:/ipfs/Qmebp4nzPja645c9yXSdJkGq96oU3am3LUnG2K3R7XxyKf\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]},\"@uniswap/lib/contracts/libraries/Babylonian.sol\":{\"keccak256\":\"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177\",\"urls\":[\"bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069\",\"dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ\"]}},\"version\":1}",
|
|
335
|
-
"bytecode": "0x60806040523480156200001157600080fd5b5060405162003dd038038062003dd0833981016040819052620000349162000443565b600080546001600160a01b0319166001600160a01b03861617815562000059620001fe565b600180546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600280546001600160a01b0319166001600160a01b038516179055805182516200012091147f416d6d526562616c616e63657250726f787956310000000000000000000000007f726f75746572732f696e6974436f64657320696e76616c6964206c656e67746862000202602090811b62000f7c17901c565b60005b8251811015620001f3578181815181106200013a57fe5b6020026020010151600360008584815181106200015357fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055508281815181106200018c57fe5b60200260200101516001600160a01b03167f8439af8069aecb3b77f115322be8bf93e7756c934ab30ea4fd1b59ea4227484a838381518110620001cb57fe5b6020026020010151604051620001e29190620005d5565b60405180910390a260010162000123565b5050505050620006df565b3390565b826200027b576200021c826001600160e01b036200028016565b6101d160f51b62000236836001600160e01b036200028016565b6040516020016200024a939291906200059e565b60408051601f198184030181529082905262461bcd60e51b82526200027291600401620005e5565b60405180910390fd5b505050565b6060808260405160200162000296919062000587565b60408051601f19818403018152919052905060205b80156200030857815160001990910190829082908110620002c857fe5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016156200030257600101815290506200031c565b620002ab565b505060408051600081526020810190915290505b919050565b80516200032e81620006ba565b92915050565b600082601f8301126200034657600080fd5b81516200035d620003578262000626565b620005ff565b915081818352602084019350602081019050838560208402820111156200038357600080fd5b60005b83811015620003b357816200039c888262000321565b845250602092830192919091019060010162000386565b5050505092915050565b600082601f830112620003cf57600080fd5b8151620003e0620003578262000626565b915081818352602084019350602081019050838560208402820111156200040657600080fd5b60005b83811015620003b357816200041f888262000436565b845250602092830192919091019060010162000409565b80516200032e81620006d4565b600080600080608085870312156200045a57600080fd5b600062000468878762000321565b94505060206200047b8782880162000321565b93505060408501516001600160401b038111156200049857600080fd5b620004a68782880162000334565b92505060608501516001600160401b03811115620004c357600080fd5b620004d187828801620003bd565b91505092959194509250565b620004f2620004ec8262000661565b6200066e565b82525050565b620004f2816200066e565b620004f2620004ec826200066e565b60006200051f8262000647565b6200052b81856200031c565b93506200053d8185602086016200067d565b9290920192915050565b6000620005548262000647565b6200056081856200064b565b9350620005728185602086016200067d565b6200057d81620006b0565b9093019392505050565b600062000595828462000503565b50602001919050565b6000620005ac828662000512565b9150620005ba8285620004dd565b600282019150620005cc828462000512565b95945050505050565b602081016200032e8284620004f8565b60208082528101620005f8818462000547565b9392505050565b6040518181016001600160401b03811182821017156200061e57600080fd5b604052919050565b60006001600160401b038211156200063d57600080fd5b5060209081020190565b5190565b90815260200190565b60006200032e8262000671565b6001600160f01b03191690565b90565b6001600160a01b031690565b60005b838110156200069a57818101518382015260200162000680565b83811115620006aa576000848401525b50505050565b601f01601f191690565b620006c58162000654565b8114620006d157600080fd5b50565b620006c5816200066e565b6136e180620006ef6000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80638d5c659e11610081578063c275f5dd1161005b578063c275f5dd1461018c578063d5dbd5151461019f578063f2fde38b146101a7576100d4565b80638d5c659e1461015c5780638da5cb5b1461016f5780638f32d59b14610177576100d4565b806366d555a9116100b257806366d555a91461012c578063715018a6146101415780637d98ebac14610149576100d4565b806315c14a4a146100d957806317859b4c146100f75780633a8fdd7d1461010c575b600080fd5b6100e16101ba565b6040516100ee91906133b4565b60405180910390f35b61010a610105366004612b8e565b6101c9565b005b61011f61011a366004612a4d565b610972565b6040516100ee91906133a6565b610134610b3b565b6040516100ee9190613302565b61010a610b4a565b61011f6101573660046129a8565b610bd9565b61011f61016a366004612907565b610d91565b610134610da3565b61017f610db2565b6040516100ee9190613398565b61010a61019a366004612acb565b610dd8565b61011f610f28565b61010a6101b5366004612907565b610f4c565b6000546001600160a01b031681565b8051516102459060281480156101e55750602882608001515110155b80156101fe57506014826080015151816101fb57fe5b06155b7f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c69642070617468206c656e67746873000000000000000000000000610f7c565b60606102548260000151610ff1565b905060606102658360800151610ff1565b90506103398160018351038151811061027a57fe5b60200260200101516001600160a01b03168360008151811061029857fe5b60200260200101516001600160a01b03161480156102f25750816000815181106102be57fe5b60200260200101516001600160a01b0316836001855103815181106102df57fe5b60200260200101516001600160a01b0316145b7f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c6964207061746820616c69676e6d656e7400000000000000000000610f7c565b61034161260c565b600254604080518082019091526001600160a01b03909116808252906020810161036b83876110e8565b81525091505060008060006103ad84600001518760008151811061038b57fe5b6020026020010151886001815181106103a057fe5b602002602001015161111e565b915091506000806103c889602001518a604001518686611159565b91509150610417827f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c69642061546f420000000000000000000000000000000000000000610f7c565b80945050505050606082602001515160020160405190808252806020026020018201604052801561046257816020015b61044f612624565b8152602001906001900390816104475790505b5090506040518060400160405280336001600160a01b0316815260200160008152508160008151811061049157fe5b60200260200101819052506040518060400160405280336001600160a01b031681526020016001815250816001815181106104c857fe5b602090810291909101015260005b83602001515181101561053b576040518060400160405280856020015183815181106104fe57fe5b60200260200101516001600160a01b03168152602001600081525082826002018151811061052857fe5b60209081029190910101526001016104d6565b50606061054786611245565b60608801516001600160a01b0316600090815260036020526040812054919250906105b58115157f416d6d526562616c616e63657250726f787956310000000000000000000000007f726f75746572206e6f74207265636f676e697a65640000000000000000000000610f7c565b61063589606001516001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156105f557600080fd5b505afa158015610609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061062d9190810190612925565b82878a611347565b60008151811061064157fe5b60200260200101519150506060600188516002010360405190808252806020026020018201604052801561068f57816020015b61067c61263b565b8152602001906001900390816106745790505b50905060008590506106da6001856001875103815181106106ac57fe5b6020026020010151866000815181106106c157fe5b6020026020010151868e606001518f6080015187611478565b826000815181106106e757fe5b60200260200101819052505060606107048760000151878b611519565b905061076b8160018351038151811061071957fe5b60200260200101518411157f416d6d526562616c616e63657250726f787956310000000000000000000000007f61726220636c6f73656400000000000000000000000000000000000000000000610f7c565b60005b8760200151518110156108a95761080b8860200151828151811061078e57fe5b60200260200101516001600160a01b03168783600201815181106107ae57fe5b6020026020010151600001516001600160a01b0316147f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c696420706f6f6c206f776e65722061646472657373000000000000610f7c565b61088760018260020187848151811061082057fe5b602002602001015188856001018151811061083757fe5b60200260200101518c60200151868151811061084f57fe5b602002602001015187878151811061086357fe5b602002602001015188886001018151811061087a57fe5b6020026020010151611632565b83826001018151811061089657fe5b602090810291909101015260010161076e565b506108ce60016000866001885103815181106108c157fe5b60200260200101516116b0565b826001845103815181106108de57fe5b60209081029190910101526000546040517fa67a6a450000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063a67a6a45906109349088908690600401613373565b600060405180830381600087803b15801561094e57600080fd5b505af1158015610962573d6000803e3d6000fd5b5050505050505050505050505050565b600080606061098384860186612943565b9250509150606061099382610ff1565b9050610a08886001600160a01b0316826000815181106109af57fe5b60200260200101516001600160a01b0316147f416d6d526562616c616e63657250726f787956310000000000000000000000007f706174685b305d206e6f742074616b6572546f6b656e00000000000000000000610f7c565b610a7e896001600160a01b031682600184510381518110610a2557fe5b60200260200101516001600160a01b0316147f416d6d526562616c616e63657250726f787956310000000000000000000000007f706174685b6c6173745d206e6f74206d616b6572546f6b656e00000000000000610f7c565b6040517f1f00ca740000000000000000000000000000000000000000000000000000000081526001600160a01b03841690631f00ca7490610ac5908a908590600401613453565b60006040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b199190810190612b3b565b600081518110610b2557fe5b6020026020010151935050505095945050505050565b6002546001600160a01b031681565b610b52610db2565b610b775760405162461bcd60e51b8152600401610b6e90613413565b60405180910390fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600080543390610c36906001600160a01b031682147f4f6e6c79446f6c6f6d6974654d617267696e00000000000000000000000000007f4f6e6c7920446f6c6f6d6974652063616e2063616c6c2066756e6374696f6e008461173e565b6000806060610c4786880188612943565b9250925092506060610c5882610ff1565b9050610c748a6001600160a01b0316826000815181106109af57fe5b610c918b6001600160a01b031682600184510381518110610a2557fe5b610c9c8a858b6117dc565b6040517f38ed17390000000000000000000000000000000000000000000000000000000081526060906001600160a01b038616906338ed173990610cec908d908890879030904290600401613473565b600060405180830381600087803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d429190810190612b3b565b9050610d668c8e83600185510381518110610d5957fe5b60200260200101516117dc565b80600182510381518110610d7657fe5b60200260200101519650505050505050979650505050505050565b60036020526000908152604090205481565b6001546001600160a01b031690565b6001546000906001600160a01b0316610dc9611897565b6001600160a01b031614905090565b610de0610db2565b610dfc5760405162461bcd60e51b8152600401610b6e90613413565b610e498382147f416d6d526562616c616e63657250726f787956310000000000000000000000007f726f75746572732f696e6974436f64657320696e76616c6964206c656e677468610f7c565b60005b83811015610f2157828282818110610e6057fe5b9050602002013560036000878785818110610e7757fe5b9050602002016020610e8c9190810190612907565b6001600160a01b03168152602081019190915260400160002055848482818110610eb257fe5b9050602002016020610ec79190810190612907565b6001600160a01b03167f8439af8069aecb3b77f115322be8bf93e7756c934ab30ea4fd1b59ea4227484a848484818110610efd57fe5b90506020020135604051610f1191906133a6565b60405180910390a2600101610e4c565b5050505050565b7f416d6d526562616c616e63657250726f7879563100000000000000000000000081565b610f54610db2565b610f705760405162461bcd60e51b8152600401610b6e90613413565b610f798161189b565b50565b82610fec57610f8a82611935565b7f3a20000000000000000000000000000000000000000000000000000000000000610fb483611935565b604051602001610fc69392919061323a565b60408051601f198184030181529082905262461bcd60e51b8252610b6e916004016133c2565b505050565b6060611058601483518161100157fe5b0615801561101157506028835110155b7f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c69642070617468206c656e67746800000000000000000000000000610f7c565b6060601483518161106557fe5b0460405190808252806020026020018201604052801561108f578160200160208202803883390190505b50905060005b81518110156110df5760148102848101602001518351606082901c908590859081106110bd57fe5b6001600160a01b03909216602092830291909101909101525050600101611095565b5090505b919050565b6060611115837f752b18f9c5dbceeac7339c1e7d27b76a85637748e21b577cfb0b8768a8fd5ce7846119cd565b90505b92915050565b60008061114d857f752b18f9c5dbceeac7339c1e7d27b76a85637748e21b577cfb0b8768a8fd5ce78686611ac2565b91509150935093915050565b6000808561117d84611171878963ffffffff611bab16565b9063ffffffff611be516565b1091506000611192858563ffffffff611bab16565b905060006111e86111b86103e5866111aa578a6111ac565b895b9063ffffffff611bab16565b6111db6103e86111ac886111cc578b6111ce565b8c5b879063ffffffff611bab16565b816111e257fe5b04611c27565b905060006103e58561120b57611206876103e863ffffffff611bab16565b61121d565b61121d886103e863ffffffff611bab16565b8161122457fe5b049050611237828263ffffffff611d7a16565b935050505094509492505050565b60005481516040805182815260208084028201019091526060926001600160a01b0316918391908015611282578160200160208202803883390190505b50905060005b845181101561133f57826001600160a01b0316638fae3be18683815181106112ac57fe5b60200260200101516040518263ffffffff1660e01b81526004016112d09190613302565b60206040518083038186803b1580156112e857600080fd5b505afa1580156112fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113209190810190612c06565b82828151811061132c57fe5b6020908102919091010152600101611288565b509392505050565b60606113996002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c696420706174680000000000000000000000000000000000000000610f7c565b81516040519080825280602002602001820160405280156113c4578160200160208202803883390190505b50905082816001835103815181106113d857fe5b60209081029190910101528151600019015b801561146f57600080611428888887600187038151811061140757fe5b602002602001015188878151811061141b57fe5b6020026020010151611dbc565b9150915061144a84848151811061143b57fe5b60200260200101518383611e15565b84600185038151811061145957fe5b60209081029190910101525050600019016113ea565b50949350505050565b61148061263b565b60408051610100810182526004815260208082018b90528251608081018452600080825292938401929091820190815260200160008152602001888152508152602001888152602001878152602001306001600160a01b0316815260200160001981526020018584866040516020016114fb93929190613346565b60408051601f19818403018152919052905298975050505050505050565b606061156b6002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c696420706174680000000000000000000000000000000000000000610f7c565b8151604051908082528060200260200182016040528015611596578160200160208202803883390190505b50905082816000815181106115a757fe5b60200260200101818152505060005b600183510381101561133f576000806115ec878685815181106115d557fe5b60200260200101518786600101815181106103a057fe5b9150915061160e8484815181106115ff57fe5b60200260200101518383611f1e565b84846001018151811061161d57fe5b602090810291909101015250506001016115b6565b61163a61263b565b604080516101008101909152806005815260208082018b905260408051608081018252600181529201919081016000815260200160008152602001868152508152602001878152602001868152602001856001600160a01b03168152602001888152602001836040516020016114fb91906133a6565b6116b861263b565b604080516101008101909152806002815260208082018790526040805160808101825260018152920191908101600081526020016001815260200160008152508152602001838152602001600019815260200160006001600160a01b031681526020018481526020016040518060200160405280600081525081525090505b9392505050565b836117d65761174c83611935565b7f3a2000000000000000000000000000000000000000000000000000000000000061177684611935565b7f203c0000000000000000000000000000000000000000000000000000000000006117a085612020565b604051610fc69594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001613262565b50505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815281906001600160a01b0385169063dd62ed3e906118259030908790600401613310565b60206040518083038186803b15801561183d57600080fd5b505afa158015611851573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118759190810190612c06565b1015610fec57610fec6001600160a01b0384168360001963ffffffff61218a16565b3390565b6001600160a01b0381166118c15760405162461bcd60e51b8152600401610b6e906133d3565b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b606080826040516020016119499190613219565b60408051601f19818403018152919052905060205b80156119b65781516000199091019082908290811061197957fe5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016156119b157600101815290506110e3565b61195e565b505060408051600081526020810190915292915050565b6060611a1f6002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c69642070617468206c656e67746800000000000000000000000000610f7c565b60606001835103604051908082528060200260200182016040528015611a4f578160200160208202803883390190505b50905060005b600184510381101561146f57611a9686858381518110611a7157fe5b6020026020010151868460010181518110611a8857fe5b6020026020010151886122e6565b828281518110611aa257fe5b6001600160a01b0390921660209283029190910190910152600101611a55565b6000806000611ad18585612359565b509050600080611ae38988888b6122e6565b6001600160a01b031663b432a82c6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b1b57600080fd5b505afa158015611b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b539190810190612bc3565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150826001600160a01b0316876001600160a01b031614611b98578082611b9b565b81815b909a909950975050505050505050565b600082611bba57506000611118565b82820282848281611bc757fe5b04146111155760405162461bcd60e51b8152600401610b6e90613403565b600061111583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612441565b600081611c36575060006110e3565b8160017001000000000000000000000000000000008210611c5c5760809190911c9060401b5b680100000000000000008210611c775760409190911c9060201b5b6401000000008210611c8e5760209190911c9060101b5b620100008210611ca35760109190911c9060081b5b6101008210611cb75760089190911c9060041b5b60108210611cca5760049190911c9060021b5b60088210611cd65760011b5b6001818581611ce157fe5b048201901c90506001818581611cf357fe5b048201901c90506001818581611d0557fe5b048201901c90506001818581611d1757fe5b048201901c90506001818581611d2957fe5b048201901c90506001818581611d3b57fe5b048201901c90506001818581611d4d57fe5b048201901c90506000818581611d5f57fe5b049050808210611d6f5780611d71565b815b95945050505050565b600061111583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612478565b6000806000611dcb8585612359565b509050600080611ddd8988888b6122e6565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b1b57600080fd5b6000611e65600085117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206f757470757420616d6f756e74000000000000610f7c565b611ebf600084118015611e785750600083115b7f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206c697175696469747900000000000000000000610f7c565b6000611ed76103e86111ac868863ffffffff611bab16565b90506000611ef16103e56111ac868963ffffffff611d7a16565b9050611f146001611f08848463ffffffff611be516565b9063ffffffff6124a416565b9695505050505050565b6000611f6e600085117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e7420696e70757420616d6f756e7400000000000000610f7c565b611fc7600084118015611e785750600083117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206c697175696469747900000000000000000000610f7c565b6000611fdb856103e563ffffffff611bab16565b90506000611fef828563ffffffff611bab16565b9050600061200983611f08886103e863ffffffff611bab16565b905080828161201457fe5b04979650505050505050565b60408051602a80825260608281019093526001600160a01b038416918391602082018180388339019050509050603060f81b8160008151811061205f57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b816001815181106120a057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b601481101561133f57600281026120eb600f85166124c9565b8382602903815181106120fa57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c935061213c600f85166124c9565b83826028038151811061214b57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c916001016120d2565b80158061222b57506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063dd62ed3e906121d99030908690600401613310565b60206040518083038186803b1580156121f157600080fd5b505afa158015612205573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122299190810190612c06565b155b6122475760405162461bcd60e51b8152600401610b6e90613433565b604051610fec9084907f095ea7b30000000000000000000000000000000000000000000000000000000090612282908690869060240161332b565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526124eb565b60008060006122f58686612359565b9150915086828260405160200161230d9291906131f3565b6040516020818303038152906040528051906020012085604051602001612336939291906132c0565b60408051601f198184030181529190528051602090910120979650505050505050565b6000806123bc836001600160a01b0316856001600160a01b031614157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f6964656e746963616c2061646472657373657300000000000000000000000000610f7c565b826001600160a01b0316846001600160a01b0316106123dc5782846123df565b83835b909250905061243a6001600160a01b03831615157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f7a65726f20616464726573730000000000000000000000000000000000000000610f7c565b9250929050565b600081836124625760405162461bcd60e51b8152600401610b6e91906133c2565b50600083858161246e57fe5b0495945050505050565b6000818484111561249c5760405162461bcd60e51b8152600401610b6e91906133c2565b505050900390565b6000828201838110156111155760405162461bcd60e51b8152600401610b6e906133e3565b6000600a8210156124e157506030810160f81b6110e3565b5060570160f81b90565b6124fd826001600160a01b03166125d0565b6125195760405162461bcd60e51b8152600401610b6e90613443565b60006060836001600160a01b031683604051612535919061322e565b6000604051808303816000865af19150503d8060008114612572576040519150601f19603f3d011682016040523d82523d6000602084013e612577565b606091505b5091509150816125995760405162461bcd60e51b8152600401610b6e906133f3565b8051156117d657808060200190516125b49190810190612b70565b6117d65760405162461bcd60e51b8152600401610b6e90613423565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061260457508115155b949350505050565b60408051808201909152600081526060602082015290565b604080518082019091526000808252602082015290565b60408051610100810182526000808252602082015290810161265b61268d565b8152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b803561111881613666565b805161111881613666565b60008083601f8401126126de57600080fd5b50813567ffffffffffffffff8111156126f657600080fd5b60208301915083602082028301111561243a57600080fd5b600082601f83011261271f57600080fd5b815161273261272d826134e3565b6134bc565b9150818183526020840193506020810190508385602084028201111561275757600080fd5b60005b83811015612783578161276d88826128f1565b845250602092830192919091019060010161275a565b5050505092915050565b80516111188161367a565b60008083601f8401126127aa57600080fd5b50813567ffffffffffffffff8111156127c257600080fd5b60208301915083600182028301111561243a57600080fd5b600082601f8301126127eb57600080fd5b81356127f961272d82613504565b9150808252602083016020830185838301111561281557600080fd5b6128208382846135f9565b50505092915050565b600060a0828403121561283b57600080fd5b61284560a06134bc565b9050813567ffffffffffffffff81111561285e57600080fd5b61286a848285016127da565b825250602061287b848483016128e6565b602083015250604061288f848285016128e6565b60408301525060606128a3848285016126b6565b606083015250608082013567ffffffffffffffff8111156128c357600080fd5b6128cf848285016127da565b60808301525092915050565b805161111881613683565b80356111188161368c565b80516111188161368c565b805161111881613695565b60006020828403121561291957600080fd5b600061260484846126b6565b60006020828403121561293757600080fd5b600061260484846126c1565b60008060006060848603121561295857600080fd5b600061296486866126b6565b9350506020612975868287016128e6565b925050604084013567ffffffffffffffff81111561299257600080fd5b61299e868287016127da565b9150509250925092565b600080600080600080600060c0888a0312156129c357600080fd5b60006129cf8a8a6126b6565b97505060206129e08a828b016126b6565b96505060406129f18a828b016126b6565b9550506060612a028a828b016126b6565b9450506080612a138a828b016128e6565b93505060a088013567ffffffffffffffff811115612a3057600080fd5b612a3c8a828b01612798565b925092505092959891949750929550565b600080600080600060808688031215612a6557600080fd5b6000612a7188886126b6565b9550506020612a82888289016126b6565b9450506040612a93888289016128e6565b935050606086013567ffffffffffffffff811115612ab057600080fd5b612abc88828901612798565b92509250509295509295909350565b60008060008060408587031215612ae157600080fd5b843567ffffffffffffffff811115612af857600080fd5b612b04878288016126cc565b9450945050602085013567ffffffffffffffff811115612b2357600080fd5b612b2f878288016126cc565b95989497509550505050565b600060208284031215612b4d57600080fd5b815167ffffffffffffffff811115612b6457600080fd5b6126048482850161270e565b600060208284031215612b8257600080fd5b6000612604848461278d565b600060208284031215612ba057600080fd5b813567ffffffffffffffff811115612bb757600080fd5b61260484828501612829565b600080600060608486031215612bd857600080fd5b6000612be486866128db565b9350506020612bf5868287016128db565b925050604061299e868287016128fc565b600060208284031215612c1857600080fd5b600061260484846128f1565b6000612c308383612c58565b505060200190565b600061111583836130e3565b6000612c5083836131cf565b505060400190565b612c618161353f565b82525050565b612c61612c738261353f565b613631565b6000612c8382613532565b612c8d8185613536565b9350612c988361352c565b8060005b83811015612cc6578151612cb08882612c24565b9750612cbb8361352c565b925050600101612c9c565b509495945050505050565b6000612cdc82613532565b612ce68185613536565b935083602082028501612cf88561352c565b8060005b85811015612d325784840389528151612d158582612c38565b9450612d208361352c565b60209a909a0199925050600101612cfc565b5091979650505050505050565b6000612d4a82613532565b612d548185613536565b9350612d5f8361352c565b8060005b83811015612cc6578151612d778882612c44565b9750612d828361352c565b925050600101612d63565b612c618161354a565b612c61612da28261354f565b613599565b612c61612da282613574565b612c6181613599565b612c61612da282613599565b6000612dd382613532565b612ddd8185613536565b9350612ded818560208601613605565b612df681613642565b9093019392505050565b6000612e0b82613532565b612e1581856110e3565b9350612e25818560208601613605565b9290920192915050565b612c61816135d8565b612c61816135e3565b612c61816135ee565b6000612e57602683613536565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612eb6601b83613536565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612eef602083613536565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000612f286001836110e3565b7fff00000000000000000000000000000000000000000000000000000000000000815260010192915050565b6000612f61602183613536565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612fc0602083613536565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000612ff9602a83613536565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e81527f6f74207375636365656400000000000000000000000000000000000000000000602082015260400192915050565b6000613058603683613536565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f81527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015260400192915050565b60006130b7601f83613536565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b80516000906101608401906130f88582612e38565b50602083015161310b6020860182612db3565b50604083015161311e6040860182613185565b50606083015161313160c0860182612db3565b50608083015161314460e0860182612db3565b5060a0830151613158610100860182612c58565b5060c083015161316c610120860182612db3565b5060e0830151848203610140860152611d718282612dc8565b805160808301906131968482612d8d565b5060208201516131a96020850182612e41565b5060408201516131bc6040850182612e41565b5060608201516117d66060850182612db3565b805160408301906131e08482612c58565b5060208201516117d66020850182612db3565b60006131ff8285612c67565b60148201915061320f8284612c67565b5060140192915050565b60006132258284612dbc565b50602001919050565b60006117378284612e00565b60006132468286612e00565b91506132528285612da7565b600282019150611d718284612e00565b600061326e8289612e00565b915061327a8288612da7565b60028201915061328a8287612e00565b91506132968286612da7565b6002820191506132a68285612e00565b91506132b28284612d96565b506001019695505050505050565b60006132cb82612f1b565b91506132d78286612c67565b6014820191506132e78285612dbc565b6020820191506132f78284612dbc565b506020019392505050565b602081016111188284612c58565b6040810161331e8285612c58565b6117376020830184612c58565b604081016133398285612c58565b6117376020830184612db3565b606081016133548286612c58565b6133616020830185612db3565b8181036040830152611d718184612dc8565b604080825281016133848185612d3f565b905081810360208301526126048184612cd1565b602081016111188284612d8d565b602081016111188284612db3565b602081016111188284612e2f565b602080825281016111158184612dc8565b6020808252810161111881612e4a565b6020808252810161111881612ea9565b6020808252810161111881612ee2565b6020808252810161111881612f54565b6020808252810161111881612fb3565b6020808252810161111881612fec565b602080825281016111188161304b565b60208082528101611118816130aa565b604081016134618285612db3565b81810360208301526126048184612c78565b60a081016134818288612db3565b61348e6020830187612db3565b81810360408301526134a08186612c78565b90506134af6060830185612c58565b611f146080830184612db3565b60405181810167ffffffffffffffff811182821017156134db57600080fd5b604052919050565b600067ffffffffffffffff8211156134fa57600080fd5b5060209081020190565b600067ffffffffffffffff82111561351b57600080fd5b506020601f91909101601f19160190565b60200190565b5190565b90815260200190565b6000611118826135c3565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b806110e381613652565b806110e38161365c565b6dffffffffffffffffffffffffffff1690565b6001600160a01b031690565b63ffffffff1690565b60006111188261353f565b60006111188261359c565b6000611118826135a6565b82818337506000910152565b60005b83811015613620578181015183820152602001613608565b838111156117d65750506000910152565b60006111188260006111188261364c565b601f01601f191690565b60601b90565b60098110610f7957fe5b60028110610f7957fe5b61366f8161353f565b8114610f7957600080fd5b61366f8161354a565b61366f816135b0565b61366f81613599565b61366f816135cf56fea365627a7a723158203ef23598ceb7eb3bb2156d4050a120b891bf229f63a1b4548761c381bd9764d76c6578706572696d656e74616cf564736f6c63430005100040",
|
|
336
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80638d5c659e11610081578063c275f5dd1161005b578063c275f5dd1461018c578063d5dbd5151461019f578063f2fde38b146101a7576100d4565b80638d5c659e1461015c5780638da5cb5b1461016f5780638f32d59b14610177576100d4565b806366d555a9116100b257806366d555a91461012c578063715018a6146101415780637d98ebac14610149576100d4565b806315c14a4a146100d957806317859b4c146100f75780633a8fdd7d1461010c575b600080fd5b6100e16101ba565b6040516100ee91906133b4565b60405180910390f35b61010a610105366004612b8e565b6101c9565b005b61011f61011a366004612a4d565b610972565b6040516100ee91906133a6565b610134610b3b565b6040516100ee9190613302565b61010a610b4a565b61011f6101573660046129a8565b610bd9565b61011f61016a366004612907565b610d91565b610134610da3565b61017f610db2565b6040516100ee9190613398565b61010a61019a366004612acb565b610dd8565b61011f610f28565b61010a6101b5366004612907565b610f4c565b6000546001600160a01b031681565b8051516102459060281480156101e55750602882608001515110155b80156101fe57506014826080015151816101fb57fe5b06155b7f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c69642070617468206c656e67746873000000000000000000000000610f7c565b60606102548260000151610ff1565b905060606102658360800151610ff1565b90506103398160018351038151811061027a57fe5b60200260200101516001600160a01b03168360008151811061029857fe5b60200260200101516001600160a01b03161480156102f25750816000815181106102be57fe5b60200260200101516001600160a01b0316836001855103815181106102df57fe5b60200260200101516001600160a01b0316145b7f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c6964207061746820616c69676e6d656e7400000000000000000000610f7c565b61034161260c565b600254604080518082019091526001600160a01b03909116808252906020810161036b83876110e8565b81525091505060008060006103ad84600001518760008151811061038b57fe5b6020026020010151886001815181106103a057fe5b602002602001015161111e565b915091506000806103c889602001518a604001518686611159565b91509150610417827f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c69642061546f420000000000000000000000000000000000000000610f7c565b80945050505050606082602001515160020160405190808252806020026020018201604052801561046257816020015b61044f612624565b8152602001906001900390816104475790505b5090506040518060400160405280336001600160a01b0316815260200160008152508160008151811061049157fe5b60200260200101819052506040518060400160405280336001600160a01b031681526020016001815250816001815181106104c857fe5b602090810291909101015260005b83602001515181101561053b576040518060400160405280856020015183815181106104fe57fe5b60200260200101516001600160a01b03168152602001600081525082826002018151811061052857fe5b60209081029190910101526001016104d6565b50606061054786611245565b60608801516001600160a01b0316600090815260036020526040812054919250906105b58115157f416d6d526562616c616e63657250726f787956310000000000000000000000007f726f75746572206e6f74207265636f676e697a65640000000000000000000000610f7c565b61063589606001516001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156105f557600080fd5b505afa158015610609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061062d9190810190612925565b82878a611347565b60008151811061064157fe5b60200260200101519150506060600188516002010360405190808252806020026020018201604052801561068f57816020015b61067c61263b565b8152602001906001900390816106745790505b50905060008590506106da6001856001875103815181106106ac57fe5b6020026020010151866000815181106106c157fe5b6020026020010151868e606001518f6080015187611478565b826000815181106106e757fe5b60200260200101819052505060606107048760000151878b611519565b905061076b8160018351038151811061071957fe5b60200260200101518411157f416d6d526562616c616e63657250726f787956310000000000000000000000007f61726220636c6f73656400000000000000000000000000000000000000000000610f7c565b60005b8760200151518110156108a95761080b8860200151828151811061078e57fe5b60200260200101516001600160a01b03168783600201815181106107ae57fe5b6020026020010151600001516001600160a01b0316147f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c696420706f6f6c206f776e65722061646472657373000000000000610f7c565b61088760018260020187848151811061082057fe5b602002602001015188856001018151811061083757fe5b60200260200101518c60200151868151811061084f57fe5b602002602001015187878151811061086357fe5b602002602001015188886001018151811061087a57fe5b6020026020010151611632565b83826001018151811061089657fe5b602090810291909101015260010161076e565b506108ce60016000866001885103815181106108c157fe5b60200260200101516116b0565b826001845103815181106108de57fe5b60209081029190910101526000546040517fa67a6a450000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063a67a6a45906109349088908690600401613373565b600060405180830381600087803b15801561094e57600080fd5b505af1158015610962573d6000803e3d6000fd5b5050505050505050505050505050565b600080606061098384860186612943565b9250509150606061099382610ff1565b9050610a08886001600160a01b0316826000815181106109af57fe5b60200260200101516001600160a01b0316147f416d6d526562616c616e63657250726f787956310000000000000000000000007f706174685b305d206e6f742074616b6572546f6b656e00000000000000000000610f7c565b610a7e896001600160a01b031682600184510381518110610a2557fe5b60200260200101516001600160a01b0316147f416d6d526562616c616e63657250726f787956310000000000000000000000007f706174685b6c6173745d206e6f74206d616b6572546f6b656e00000000000000610f7c565b6040517f1f00ca740000000000000000000000000000000000000000000000000000000081526001600160a01b03841690631f00ca7490610ac5908a908590600401613453565b60006040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b199190810190612b3b565b600081518110610b2557fe5b6020026020010151935050505095945050505050565b6002546001600160a01b031681565b610b52610db2565b610b775760405162461bcd60e51b8152600401610b6e90613413565b60405180910390fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600080543390610c36906001600160a01b031682147f4f6e6c79446f6c6f6d6974654d617267696e00000000000000000000000000007f4f6e6c7920446f6c6f6d6974652063616e2063616c6c2066756e6374696f6e008461173e565b6000806060610c4786880188612943565b9250925092506060610c5882610ff1565b9050610c748a6001600160a01b0316826000815181106109af57fe5b610c918b6001600160a01b031682600184510381518110610a2557fe5b610c9c8a858b6117dc565b6040517f38ed17390000000000000000000000000000000000000000000000000000000081526060906001600160a01b038616906338ed173990610cec908d908890879030904290600401613473565b600060405180830381600087803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d429190810190612b3b565b9050610d668c8e83600185510381518110610d5957fe5b60200260200101516117dc565b80600182510381518110610d7657fe5b60200260200101519650505050505050979650505050505050565b60036020526000908152604090205481565b6001546001600160a01b031690565b6001546000906001600160a01b0316610dc9611897565b6001600160a01b031614905090565b610de0610db2565b610dfc5760405162461bcd60e51b8152600401610b6e90613413565b610e498382147f416d6d526562616c616e63657250726f787956310000000000000000000000007f726f75746572732f696e6974436f64657320696e76616c6964206c656e677468610f7c565b60005b83811015610f2157828282818110610e6057fe5b9050602002013560036000878785818110610e7757fe5b9050602002016020610e8c9190810190612907565b6001600160a01b03168152602081019190915260400160002055848482818110610eb257fe5b9050602002016020610ec79190810190612907565b6001600160a01b03167f8439af8069aecb3b77f115322be8bf93e7756c934ab30ea4fd1b59ea4227484a848484818110610efd57fe5b90506020020135604051610f1191906133a6565b60405180910390a2600101610e4c565b5050505050565b7f416d6d526562616c616e63657250726f7879563100000000000000000000000081565b610f54610db2565b610f705760405162461bcd60e51b8152600401610b6e90613413565b610f798161189b565b50565b82610fec57610f8a82611935565b7f3a20000000000000000000000000000000000000000000000000000000000000610fb483611935565b604051602001610fc69392919061323a565b60408051601f198184030181529082905262461bcd60e51b8252610b6e916004016133c2565b505050565b6060611058601483518161100157fe5b0615801561101157506028835110155b7f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c69642070617468206c656e67746800000000000000000000000000610f7c565b6060601483518161106557fe5b0460405190808252806020026020018201604052801561108f578160200160208202803883390190505b50905060005b81518110156110df5760148102848101602001518351606082901c908590859081106110bd57fe5b6001600160a01b03909216602092830291909101909101525050600101611095565b5090505b919050565b6060611115837f752b18f9c5dbceeac7339c1e7d27b76a85637748e21b577cfb0b8768a8fd5ce7846119cd565b90505b92915050565b60008061114d857f752b18f9c5dbceeac7339c1e7d27b76a85637748e21b577cfb0b8768a8fd5ce78686611ac2565b91509150935093915050565b6000808561117d84611171878963ffffffff611bab16565b9063ffffffff611be516565b1091506000611192858563ffffffff611bab16565b905060006111e86111b86103e5866111aa578a6111ac565b895b9063ffffffff611bab16565b6111db6103e86111ac886111cc578b6111ce565b8c5b879063ffffffff611bab16565b816111e257fe5b04611c27565b905060006103e58561120b57611206876103e863ffffffff611bab16565b61121d565b61121d886103e863ffffffff611bab16565b8161122457fe5b049050611237828263ffffffff611d7a16565b935050505094509492505050565b60005481516040805182815260208084028201019091526060926001600160a01b0316918391908015611282578160200160208202803883390190505b50905060005b845181101561133f57826001600160a01b0316638fae3be18683815181106112ac57fe5b60200260200101516040518263ffffffff1660e01b81526004016112d09190613302565b60206040518083038186803b1580156112e857600080fd5b505afa1580156112fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113209190810190612c06565b82828151811061132c57fe5b6020908102919091010152600101611288565b509392505050565b60606113996002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c696420706174680000000000000000000000000000000000000000610f7c565b81516040519080825280602002602001820160405280156113c4578160200160208202803883390190505b50905082816001835103815181106113d857fe5b60209081029190910101528151600019015b801561146f57600080611428888887600187038151811061140757fe5b602002602001015188878151811061141b57fe5b6020026020010151611dbc565b9150915061144a84848151811061143b57fe5b60200260200101518383611e15565b84600185038151811061145957fe5b60209081029190910101525050600019016113ea565b50949350505050565b61148061263b565b60408051610100810182526004815260208082018b90528251608081018452600080825292938401929091820190815260200160008152602001888152508152602001888152602001878152602001306001600160a01b0316815260200160001981526020018584866040516020016114fb93929190613346565b60408051601f19818403018152919052905298975050505050505050565b606061156b6002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c696420706174680000000000000000000000000000000000000000610f7c565b8151604051908082528060200260200182016040528015611596578160200160208202803883390190505b50905082816000815181106115a757fe5b60200260200101818152505060005b600183510381101561133f576000806115ec878685815181106115d557fe5b60200260200101518786600101815181106103a057fe5b9150915061160e8484815181106115ff57fe5b60200260200101518383611f1e565b84846001018151811061161d57fe5b602090810291909101015250506001016115b6565b61163a61263b565b604080516101008101909152806005815260208082018b905260408051608081018252600181529201919081016000815260200160008152602001868152508152602001878152602001868152602001856001600160a01b03168152602001888152602001836040516020016114fb91906133a6565b6116b861263b565b604080516101008101909152806002815260208082018790526040805160808101825260018152920191908101600081526020016001815260200160008152508152602001838152602001600019815260200160006001600160a01b031681526020018481526020016040518060200160405280600081525081525090505b9392505050565b836117d65761174c83611935565b7f3a2000000000000000000000000000000000000000000000000000000000000061177684611935565b7f203c0000000000000000000000000000000000000000000000000000000000006117a085612020565b604051610fc69594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001613262565b50505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815281906001600160a01b0385169063dd62ed3e906118259030908790600401613310565b60206040518083038186803b15801561183d57600080fd5b505afa158015611851573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118759190810190612c06565b1015610fec57610fec6001600160a01b0384168360001963ffffffff61218a16565b3390565b6001600160a01b0381166118c15760405162461bcd60e51b8152600401610b6e906133d3565b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b606080826040516020016119499190613219565b60408051601f19818403018152919052905060205b80156119b65781516000199091019082908290811061197957fe5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016156119b157600101815290506110e3565b61195e565b505060408051600081526020810190915292915050565b6060611a1f6002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c69642070617468206c656e67746800000000000000000000000000610f7c565b60606001835103604051908082528060200260200182016040528015611a4f578160200160208202803883390190505b50905060005b600184510381101561146f57611a9686858381518110611a7157fe5b6020026020010151868460010181518110611a8857fe5b6020026020010151886122e6565b828281518110611aa257fe5b6001600160a01b0390921660209283029190910190910152600101611a55565b6000806000611ad18585612359565b509050600080611ae38988888b6122e6565b6001600160a01b031663b432a82c6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b1b57600080fd5b505afa158015611b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b539190810190612bc3565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150826001600160a01b0316876001600160a01b031614611b98578082611b9b565b81815b909a909950975050505050505050565b600082611bba57506000611118565b82820282848281611bc757fe5b04146111155760405162461bcd60e51b8152600401610b6e90613403565b600061111583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612441565b600081611c36575060006110e3565b8160017001000000000000000000000000000000008210611c5c5760809190911c9060401b5b680100000000000000008210611c775760409190911c9060201b5b6401000000008210611c8e5760209190911c9060101b5b620100008210611ca35760109190911c9060081b5b6101008210611cb75760089190911c9060041b5b60108210611cca5760049190911c9060021b5b60088210611cd65760011b5b6001818581611ce157fe5b048201901c90506001818581611cf357fe5b048201901c90506001818581611d0557fe5b048201901c90506001818581611d1757fe5b048201901c90506001818581611d2957fe5b048201901c90506001818581611d3b57fe5b048201901c90506001818581611d4d57fe5b048201901c90506000818581611d5f57fe5b049050808210611d6f5780611d71565b815b95945050505050565b600061111583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612478565b6000806000611dcb8585612359565b509050600080611ddd8988888b6122e6565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b1b57600080fd5b6000611e65600085117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206f757470757420616d6f756e74000000000000610f7c565b611ebf600084118015611e785750600083115b7f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206c697175696469747900000000000000000000610f7c565b6000611ed76103e86111ac868863ffffffff611bab16565b90506000611ef16103e56111ac868963ffffffff611d7a16565b9050611f146001611f08848463ffffffff611be516565b9063ffffffff6124a416565b9695505050505050565b6000611f6e600085117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e7420696e70757420616d6f756e7400000000000000610f7c565b611fc7600084118015611e785750600083117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206c697175696469747900000000000000000000610f7c565b6000611fdb856103e563ffffffff611bab16565b90506000611fef828563ffffffff611bab16565b9050600061200983611f08886103e863ffffffff611bab16565b905080828161201457fe5b04979650505050505050565b60408051602a80825260608281019093526001600160a01b038416918391602082018180388339019050509050603060f81b8160008151811061205f57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b816001815181106120a057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b601481101561133f57600281026120eb600f85166124c9565b8382602903815181106120fa57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c935061213c600f85166124c9565b83826028038151811061214b57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c916001016120d2565b80158061222b57506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063dd62ed3e906121d99030908690600401613310565b60206040518083038186803b1580156121f157600080fd5b505afa158015612205573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122299190810190612c06565b155b6122475760405162461bcd60e51b8152600401610b6e90613433565b604051610fec9084907f095ea7b30000000000000000000000000000000000000000000000000000000090612282908690869060240161332b565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526124eb565b60008060006122f58686612359565b9150915086828260405160200161230d9291906131f3565b6040516020818303038152906040528051906020012085604051602001612336939291906132c0565b60408051601f198184030181529190528051602090910120979650505050505050565b6000806123bc836001600160a01b0316856001600160a01b031614157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f6964656e746963616c2061646472657373657300000000000000000000000000610f7c565b826001600160a01b0316846001600160a01b0316106123dc5782846123df565b83835b909250905061243a6001600160a01b03831615157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f7a65726f20616464726573730000000000000000000000000000000000000000610f7c565b9250929050565b600081836124625760405162461bcd60e51b8152600401610b6e91906133c2565b50600083858161246e57fe5b0495945050505050565b6000818484111561249c5760405162461bcd60e51b8152600401610b6e91906133c2565b505050900390565b6000828201838110156111155760405162461bcd60e51b8152600401610b6e906133e3565b6000600a8210156124e157506030810160f81b6110e3565b5060570160f81b90565b6124fd826001600160a01b03166125d0565b6125195760405162461bcd60e51b8152600401610b6e90613443565b60006060836001600160a01b031683604051612535919061322e565b6000604051808303816000865af19150503d8060008114612572576040519150601f19603f3d011682016040523d82523d6000602084013e612577565b606091505b5091509150816125995760405162461bcd60e51b8152600401610b6e906133f3565b8051156117d657808060200190516125b49190810190612b70565b6117d65760405162461bcd60e51b8152600401610b6e90613423565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061260457508115155b949350505050565b60408051808201909152600081526060602082015290565b604080518082019091526000808252602082015290565b60408051610100810182526000808252602082015290810161265b61268d565b8152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b803561111881613666565b805161111881613666565b60008083601f8401126126de57600080fd5b50813567ffffffffffffffff8111156126f657600080fd5b60208301915083602082028301111561243a57600080fd5b600082601f83011261271f57600080fd5b815161273261272d826134e3565b6134bc565b9150818183526020840193506020810190508385602084028201111561275757600080fd5b60005b83811015612783578161276d88826128f1565b845250602092830192919091019060010161275a565b5050505092915050565b80516111188161367a565b60008083601f8401126127aa57600080fd5b50813567ffffffffffffffff8111156127c257600080fd5b60208301915083600182028301111561243a57600080fd5b600082601f8301126127eb57600080fd5b81356127f961272d82613504565b9150808252602083016020830185838301111561281557600080fd5b6128208382846135f9565b50505092915050565b600060a0828403121561283b57600080fd5b61284560a06134bc565b9050813567ffffffffffffffff81111561285e57600080fd5b61286a848285016127da565b825250602061287b848483016128e6565b602083015250604061288f848285016128e6565b60408301525060606128a3848285016126b6565b606083015250608082013567ffffffffffffffff8111156128c357600080fd5b6128cf848285016127da565b60808301525092915050565b805161111881613683565b80356111188161368c565b80516111188161368c565b805161111881613695565b60006020828403121561291957600080fd5b600061260484846126b6565b60006020828403121561293757600080fd5b600061260484846126c1565b60008060006060848603121561295857600080fd5b600061296486866126b6565b9350506020612975868287016128e6565b925050604084013567ffffffffffffffff81111561299257600080fd5b61299e868287016127da565b9150509250925092565b600080600080600080600060c0888a0312156129c357600080fd5b60006129cf8a8a6126b6565b97505060206129e08a828b016126b6565b96505060406129f18a828b016126b6565b9550506060612a028a828b016126b6565b9450506080612a138a828b016128e6565b93505060a088013567ffffffffffffffff811115612a3057600080fd5b612a3c8a828b01612798565b925092505092959891949750929550565b600080600080600060808688031215612a6557600080fd5b6000612a7188886126b6565b9550506020612a82888289016126b6565b9450506040612a93888289016128e6565b935050606086013567ffffffffffffffff811115612ab057600080fd5b612abc88828901612798565b92509250509295509295909350565b60008060008060408587031215612ae157600080fd5b843567ffffffffffffffff811115612af857600080fd5b612b04878288016126cc565b9450945050602085013567ffffffffffffffff811115612b2357600080fd5b612b2f878288016126cc565b95989497509550505050565b600060208284031215612b4d57600080fd5b815167ffffffffffffffff811115612b6457600080fd5b6126048482850161270e565b600060208284031215612b8257600080fd5b6000612604848461278d565b600060208284031215612ba057600080fd5b813567ffffffffffffffff811115612bb757600080fd5b61260484828501612829565b600080600060608486031215612bd857600080fd5b6000612be486866128db565b9350506020612bf5868287016128db565b925050604061299e868287016128fc565b600060208284031215612c1857600080fd5b600061260484846128f1565b6000612c308383612c58565b505060200190565b600061111583836130e3565b6000612c5083836131cf565b505060400190565b612c618161353f565b82525050565b612c61612c738261353f565b613631565b6000612c8382613532565b612c8d8185613536565b9350612c988361352c565b8060005b83811015612cc6578151612cb08882612c24565b9750612cbb8361352c565b925050600101612c9c565b509495945050505050565b6000612cdc82613532565b612ce68185613536565b935083602082028501612cf88561352c565b8060005b85811015612d325784840389528151612d158582612c38565b9450612d208361352c565b60209a909a0199925050600101612cfc565b5091979650505050505050565b6000612d4a82613532565b612d548185613536565b9350612d5f8361352c565b8060005b83811015612cc6578151612d778882612c44565b9750612d828361352c565b925050600101612d63565b612c618161354a565b612c61612da28261354f565b613599565b612c61612da282613574565b612c6181613599565b612c61612da282613599565b6000612dd382613532565b612ddd8185613536565b9350612ded818560208601613605565b612df681613642565b9093019392505050565b6000612e0b82613532565b612e1581856110e3565b9350612e25818560208601613605565b9290920192915050565b612c61816135d8565b612c61816135e3565b612c61816135ee565b6000612e57602683613536565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612eb6601b83613536565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612eef602083613536565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000612f286001836110e3565b7fff00000000000000000000000000000000000000000000000000000000000000815260010192915050565b6000612f61602183613536565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612fc0602083613536565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000612ff9602a83613536565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e81527f6f74207375636365656400000000000000000000000000000000000000000000602082015260400192915050565b6000613058603683613536565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f81527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015260400192915050565b60006130b7601f83613536565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b80516000906101608401906130f88582612e38565b50602083015161310b6020860182612db3565b50604083015161311e6040860182613185565b50606083015161313160c0860182612db3565b50608083015161314460e0860182612db3565b5060a0830151613158610100860182612c58565b5060c083015161316c610120860182612db3565b5060e0830151848203610140860152611d718282612dc8565b805160808301906131968482612d8d565b5060208201516131a96020850182612e41565b5060408201516131bc6040850182612e41565b5060608201516117d66060850182612db3565b805160408301906131e08482612c58565b5060208201516117d66020850182612db3565b60006131ff8285612c67565b60148201915061320f8284612c67565b5060140192915050565b60006132258284612dbc565b50602001919050565b60006117378284612e00565b60006132468286612e00565b91506132528285612da7565b600282019150611d718284612e00565b600061326e8289612e00565b915061327a8288612da7565b60028201915061328a8287612e00565b91506132968286612da7565b6002820191506132a68285612e00565b91506132b28284612d96565b506001019695505050505050565b60006132cb82612f1b565b91506132d78286612c67565b6014820191506132e78285612dbc565b6020820191506132f78284612dbc565b506020019392505050565b602081016111188284612c58565b6040810161331e8285612c58565b6117376020830184612c58565b604081016133398285612c58565b6117376020830184612db3565b606081016133548286612c58565b6133616020830185612db3565b8181036040830152611d718184612dc8565b604080825281016133848185612d3f565b905081810360208301526126048184612cd1565b602081016111188284612d8d565b602081016111188284612db3565b602081016111188284612e2f565b602080825281016111158184612dc8565b6020808252810161111881612e4a565b6020808252810161111881612ea9565b6020808252810161111881612ee2565b6020808252810161111881612f54565b6020808252810161111881612fb3565b6020808252810161111881612fec565b602080825281016111188161304b565b60208082528101611118816130aa565b604081016134618285612db3565b81810360208301526126048184612c78565b60a081016134818288612db3565b61348e6020830187612db3565b81810360408301526134a08186612c78565b90506134af6060830185612c58565b611f146080830184612db3565b60405181810167ffffffffffffffff811182821017156134db57600080fd5b604052919050565b600067ffffffffffffffff8211156134fa57600080fd5b5060209081020190565b600067ffffffffffffffff82111561351b57600080fd5b506020601f91909101601f19160190565b60200190565b5190565b90815260200190565b6000611118826135c3565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b806110e381613652565b806110e38161365c565b6dffffffffffffffffffffffffffff1690565b6001600160a01b031690565b63ffffffff1690565b60006111188261353f565b60006111188261359c565b6000611118826135a6565b82818337506000910152565b60005b83811015613620578181015183820152602001613608565b838111156117d65750506000910152565b60006111188260006111188261364c565b601f01601f191690565b60601b90565b60098110610f7957fe5b60028110610f7957fe5b61366f8161353f565b8114610f7957600080fd5b61366f8161354a565b61366f816135b0565b61366f81613599565b61366f816135cf56fea365627a7a723158203ef23598ceb7eb3bb2156d4050a120b891bf229f63a1b4548761c381bd9764d76c6578706572696d656e74616cf564736f6c63430005100040",
|
|
334
|
+
"metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dolomiteMargin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dolomiteAmmFactory\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"routers\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"initCodeHashes\",\"type\":\"bytes32[]\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"RouterInitCodeHashSet\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOLOMITE_AMM_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOLOMITE_MARGIN\",\"outputs\":[{\"internalType\":\"contract IDolomiteMargin\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"FILE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"ROUTER_TO_INIT_CODE_HASH_MAP\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"routers\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"initCodeHashes\",\"type\":\"bytes32[]\"}],\"name\":\"adminSetRouterInitCodeHashes\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"makerToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"takerToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"orderData\",\"type\":\"bytes\"}],\"name\":\"exchange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"makerToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"takerToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"desiredMakerToken\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"orderData\",\"type\":\"bytes\"}],\"name\":\"getExchangeCost\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"dolomitePath\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenB\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"otherRouter\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"otherPath\",\"type\":\"bytes\"}],\"internalType\":\"struct AmmRebalancerProxyV1.RebalanceParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"performRebalance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Dolomite * Contract for re-balancing the Dolomite AMM pools against other UniswapV2Router compatible pools\",\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"AmmRebalancerProxyV1\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/AmmRebalancerProxyV1.sol\":\"AmmRebalancerProxyV1\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/helpers/OnlyDolomiteMargin.sol\":{\"keccak256\":\"0xfc9ce2f5a274ec66668c133f09fe213bc1a6a739f9147f4357a3493094de8deb\",\"urls\":[\"bzz-raw://e45442587f111fa0d85dd85a4e07993f5fecd1afce4f457ed21441f8b0abb937\",\"dweb:/ipfs/QmaNq3j3PUwb8Wrx2gEmFFsVa2GByDEkDCPGdwo2qvMeKh\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmFactory.sol\":{\"keccak256\":\"0xf5fd97ee3591ff30a3576d6d58847b5f6e156639578bed3827313a2c70823b78\",\"urls\":[\"bzz-raw://f9da41065f9b3b559bfc588cea01480f1c64ee7b1f1a86e54868f464fdfe2160\",\"dweb:/ipfs/QmWeBi2zSdPCENVV4fvCQ49HgnwLGxd3WS9sGMC4vR5NrB\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmPair.sol\":{\"keccak256\":\"0xe2272c233467a78460e681419f0acdc765de0ad5357d3b768665f289941ccd47\",\"urls\":[\"bzz-raw://114f1c797f4e7e803b0764ae7107a2279c3da806450287c9e5600211faeeab57\",\"dweb:/ipfs/QmUoLx1rGgCdX5ScsUkp4NsSZLyVWdKsVKeXuPCtcrAvLn\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IUniswapV2Router.sol\":{\"keccak256\":\"0xbb1dded2be890864da47836668261c2c655ec63a5fe6ccaa5da61a6376ebb03c\",\"urls\":[\"bzz-raw://8243cb7e11c97c7d95ad096d962f2be45bc1caccf6fc88a6ac0b3287031b8d1d\",\"dweb:/ipfs/QmbZuXgtDspV7P4qooQygPcoBxvoLS7A5xgJpXAsfsXrzS\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/DolomiteAmmLibrary.sol\":{\"keccak256\":\"0x0524ddd51d7e1d2763f53fa0cae47c068760930b4cdde9e09c2822a66a56bb86\",\"urls\":[\"bzz-raw://12cc579a1c687c6271b4ff3e7525253a3b84bb1f549b6703f3cfbae8a5b9a81b\",\"dweb:/ipfs/QmaezCERXxEuVu2ixydZcEyG3TzRwuP3ttKyaUDBT2HSrK\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/TypedSignature.sol\":{\"keccak256\":\"0x4b4eb5fd2869d6c410948f78163773442c11bc82e393307e41359bbdb21577bf\",\"urls\":[\"bzz-raw://9c9c3abae44173086bc08f5479fbc67151d5905f60e1032ec6f9e40f841f3365\",\"dweb:/ipfs/QmbsQRX3gmcpimjFEW5ULJVavHQtViyg7NSQ2Q8Qcu6F6V\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/AmmRebalancerProxyV1.sol\":{\"keccak256\":\"0x88cb8f402a15e7079754a260e121a52ba47a681d0a3decb3ad608820abfab0e7\",\"urls\":[\"bzz-raw://3acc5a6aeafb90b2d46a8900d5797e8288b757233a2b2375543e2cbe689ea830\",\"dweb:/ipfs/QmSjMxkUR1VHvGYdGasGGqSXts9nUxw38u8T7nETG2czJ4\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/uniswap-v2/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x022ea15b611c155e236053a484d21223ae6f74da3828379cd8a34a16649b5945\",\"urls\":[\"bzz-raw://41979b601b10b34937f2f5939ab5c5240759c3434e405bf84a69ef94a1612454\",\"dweb:/ipfs/QmbK4y63kjtpbxFgResFo9K2bEhNxcxoTqddpJXeHxwqcT\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IDolomiteMargin.sol\":{\"keccak256\":\"0x1e73364879c267fdd2bfd871e62ee58ee3d65fbef3b71e3cc104fbff499eca6c\",\"urls\":[\"bzz-raw://e3b1327980a5949afd52cff4713f47ee4fdee9a8b376ceaa3402f5c9696b8c1b\",\"dweb:/ipfs/QmbhQzVEdaraPJizT5DTtk6CDzH3guHNipHW5T23uTtFkX\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IExchangeWrapper.sol\":{\"keccak256\":\"0xfca7f5635821bbc8ff21db6982471a5f20071365496b74a8202e59494d0f327f\",\"urls\":[\"bzz-raw://eb289cb96c83a3ff7fd72d9a646694d324ee955874ef61e986850459b5841d16\",\"dweb:/ipfs/QmeeiaqShMqWpttPJ3GuDwxFzmq235HMVG7vDnLWnCupaZ\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x0ab9a3fabc89984dff748af63d4319ee134051de2d7fc560e34ebaac86198396\",\"urls\":[\"bzz-raw://ab67f499a8ef83dc7e7cf7176a0f66eced40fa228eda8dd2d47e066ab985cf42\",\"dweb:/ipfs/QmXRHbsEYxr2Qsfsj5psXGV5LaPZHuzLiEXzSQJ77WSE27\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x44ec62b766a88a2f65267991e76cab88711e733b826dc9e578cb6ad6b38b2445\",\"urls\":[\"bzz-raw://731a8d44e57c9dcd7fbdefc37a6b5889c0d06defb3bd66b921b2a7db0edf0103\",\"dweb:/ipfs/QmcVbXc9oi5DMxjPtsBF76oJzD6zVjm7RuXgJfP3Goqrrb\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x425bf5764368faca16cc30a64b79d9bbe01fd8150444b58a464971c32450bd85\",\"urls\":[\"bzz-raw://064baf3155da634c5c80cea70bba0dda7a33af934b34f75f596961b4ab9aeafe\",\"dweb:/ipfs/QmTUHXoi9L6CkERyfhFs1jhxU66u2sbc6XRR5cH4TeHEqL\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0x1e6ff383f285e311d07374edda353e14ac4f29201726b0062a2f046c1a2b482c\",\"urls\":[\"bzz-raw://fd11c5db01039bf2c95f3561b08d271b80b7b1cb9fd7f75da887f7609807c5a7\",\"dweb:/ipfs/QmcY6CugdEHaYUa8ZKSnUDhvtVuoLfpDscZcmC91koAn1t\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0x66990bbe3c58d0edf57d3f67ab5280e2a53958ce44f75c335c4c50542321bccb\",\"urls\":[\"bzz-raw://724cfdb5c99121aab5262679e46766a2883e344749870d7dbfa92d1617f68bf2\",\"dweb:/ipfs/QmYjAsS45f6UG2u3zuTks2HVfMYtyFCVMgUvD7Gt7XtU3R\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x9710b0ab43cc2d964d8722a0aabbedbf7e9d4756dcc0b4ab7c46c1ee68653042\",\"urls\":[\"bzz-raw://2405593d37f0f224bfca556f01634a9755bb0ed626f74dd15293106a8b4dd7d3\",\"dweb:/ipfs/QmTZ16S336jsoDnK5p3vAZRzimBkmdEJibncHVBJxBt469\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x73e75454568c5dfc3bdcf7dbf2ddce6ab8d3d317618bc1f1957f7667e15d3799\",\"urls\":[\"bzz-raw://7b1c8a9a79c8ffdbb0fa633f713ae3dfeac93b31d2b1639614ac32d473fb8250\",\"dweb:/ipfs/QmfARP93W2mgeVwD9Lkd3yVmbCLF2Mos7o8HJ1x6WYQmxZ\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Math.sol\":{\"keccak256\":\"0x0c0c913b6ccdb69063f9ec84879fcad20a1ee6f44402c9f5ec2b4f5b9f2fa16b\",\"urls\":[\"bzz-raw://89b32eefb57e5e63ad8c6e079ae7bf2d2c8622776cd45af0cf304e1cafd6e078\",\"dweb:/ipfs/Qmcj7yRnYuTgKC3ZqZqe8rynHGYVDS3UrFExcVGcqeaDHY\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0xe641662503ea29ca959e84674188c3e9deaaf64c5623fb9560a4301c521ca1d3\",\"urls\":[\"bzz-raw://b10a04c7d014b99eb792c8c774e203c846d070b30cf0b715325fc07838ed6a6d\",\"dweb:/ipfs/QmUqZWnbchfEY9jM647yQamHe4GzspfUeRQF9k2nn1Hixd\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0xf930fbde3ab43ec8f079dbad062453b502542f53b7eec670c8e86c7a2e47dd9a\",\"urls\":[\"bzz-raw://e1c402fc55471e8372be478e99f91c28373f096e31f0ef1d5072dfdb81541c29\",\"dweb:/ipfs/QmTc8WSfFCbxNQqNpq1vptUVFxteKQ8HWEhyXREyPZ2neu\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x233d6ebf965711bf980f4bb2e672fb1a11b4b879fd41c884b3c2b704417d0d0c\",\"urls\":[\"bzz-raw://6478ff81706d531f9438b96274a7b904abbbd9c631540c68c6a89c3accf27abf\",\"dweb:/ipfs/QmWe9vkz3qwVjrcbmcTL8wgkjLPsrEqxcqPJL9ujM8PPbp\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0xd7bcae9e3c570544fc946a00cc7695106a64c20bc130d0183612c0410a531d19\",\"urls\":[\"bzz-raw://0ff5ffd6abb9ed223a64128c131afd962bec07fb9867cb62593906b339c76920\",\"dweb:/ipfs/QmbTrJL4bekvBqqaw6wXnBhYzS9uAqULSWF2VzW4cdfsM5\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xab134538648a2e223a7fe61db03c14f687657a5d37147f93c9088f11735aa311\",\"urls\":[\"bzz-raw://79dc7d2b30576d2349b99267642ac8d5fb7939c920b8d8045379d3614238bdc3\",\"dweb:/ipfs/QmaQJYg1nirHoWSC6G38Cjsk9pZBzEaNrGXKqTsvAzbyES\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0x6fb9d7889769d7cc161225f9ef7a90e468ba9788b253816f8d8b6894d3472c24\",\"urls\":[\"bzz-raw://cf4c00fc3c37cc5acf0c82ec6fd97bab67d72c2567fdc0ebf023d9c09b30a08e\",\"dweb:/ipfs/Qmb7TChG6DsEDX7LooJ4vmxot19f7VXX8S1zUGPeJTWbwZ\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0x6f2c9955d65c522b80f4b8792f076512d2df947d2112cbc4d98a4781ed42ede2\",\"urls\":[\"bzz-raw://7d8ec81683520c06baeef3f7e06cd82bd6fd5fa611f26857f475f6c829540aff\",\"dweb:/ipfs/QmTDkFzKnrpiV1UKnSoiZAHPuguWzokrr4pFbSPvyaSo56\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x1a8e5072509c5ea7365eb1d48030b9be865140c8fb779968da0a459a0e174a11\",\"urls\":[\"bzz-raw://03335b7b07c7c8c8d613cfdd8ec39a0b5ec133ee510bf2fe6cc5a496767bef4b\",\"dweb:/ipfs/Qmebp4nzPja645c9yXSdJkGq96oU3am3LUnG2K3R7XxyKf\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]},\"@uniswap/lib/contracts/libraries/Babylonian.sol\":{\"keccak256\":\"0xeb1c2a281a00f4660775f75ccfa1e51fbe1d75f86aeb9d0d297151ecdb900177\",\"urls\":[\"bzz-raw://68515f0265381bddfb1d1356ea10ce4e5784276fc09f197fcdcedfa5c75cc069\",\"dweb:/ipfs/QmXWVVPnuJwRUAu3Qpu1s7Fyc5WPQxmZPczVEe5cJ5wVHZ\"]}},\"version\":1}",
|
|
335
|
+
"bytecode": "0x60806040523480156200001157600080fd5b5060405162003dd038038062003dd0833981016040819052620000349162000443565b600080546001600160a01b0319166001600160a01b03861617815562000059620001fe565b600180546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600280546001600160a01b0319166001600160a01b038516179055805182516200012091147f416d6d526562616c616e63657250726f787956310000000000000000000000007f726f75746572732f696e6974436f64657320696e76616c6964206c656e67746862000202602090811b62000f7c17901c565b60005b8251811015620001f3578181815181106200013a57fe5b6020026020010151600360008584815181106200015357fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055508281815181106200018c57fe5b60200260200101516001600160a01b03167f8439af8069aecb3b77f115322be8bf93e7756c934ab30ea4fd1b59ea4227484a838381518110620001cb57fe5b6020026020010151604051620001e29190620005d5565b60405180910390a260010162000123565b5050505050620006df565b3390565b826200027b576200021c826001600160e01b036200028016565b6101d160f51b62000236836001600160e01b036200028016565b6040516020016200024a939291906200059e565b60408051601f198184030181529082905262461bcd60e51b82526200027291600401620005e5565b60405180910390fd5b505050565b6060808260405160200162000296919062000587565b60408051601f19818403018152919052905060205b80156200030857815160001990910190829082908110620002c857fe5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016156200030257600101815290506200031c565b620002ab565b505060408051600081526020810190915290505b919050565b80516200032e81620006ba565b92915050565b600082601f8301126200034657600080fd5b81516200035d620003578262000626565b620005ff565b915081818352602084019350602081019050838560208402820111156200038357600080fd5b60005b83811015620003b357816200039c888262000321565b845250602092830192919091019060010162000386565b5050505092915050565b600082601f830112620003cf57600080fd5b8151620003e0620003578262000626565b915081818352602084019350602081019050838560208402820111156200040657600080fd5b60005b83811015620003b357816200041f888262000436565b845250602092830192919091019060010162000409565b80516200032e81620006d4565b600080600080608085870312156200045a57600080fd5b600062000468878762000321565b94505060206200047b8782880162000321565b93505060408501516001600160401b038111156200049857600080fd5b620004a68782880162000334565b92505060608501516001600160401b03811115620004c357600080fd5b620004d187828801620003bd565b91505092959194509250565b620004f2620004ec8262000661565b6200066e565b82525050565b620004f2816200066e565b620004f2620004ec826200066e565b60006200051f8262000647565b6200052b81856200031c565b93506200053d8185602086016200067d565b9290920192915050565b6000620005548262000647565b6200056081856200064b565b9350620005728185602086016200067d565b6200057d81620006b0565b9093019392505050565b600062000595828462000503565b50602001919050565b6000620005ac828662000512565b9150620005ba8285620004dd565b600282019150620005cc828462000512565b95945050505050565b602081016200032e8284620004f8565b60208082528101620005f8818462000547565b9392505050565b6040518181016001600160401b03811182821017156200061e57600080fd5b604052919050565b60006001600160401b038211156200063d57600080fd5b5060209081020190565b5190565b90815260200190565b60006200032e8262000671565b6001600160f01b03191690565b90565b6001600160a01b031690565b60005b838110156200069a57818101518382015260200162000680565b83811115620006aa576000848401525b50505050565b601f01601f191690565b620006c58162000654565b8114620006d157600080fd5b50565b620006c5816200066e565b6136e180620006ef6000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80638d5c659e11610081578063c275f5dd1161005b578063c275f5dd1461018c578063d5dbd5151461019f578063f2fde38b146101a7576100d4565b80638d5c659e1461015c5780638da5cb5b1461016f5780638f32d59b14610177576100d4565b806366d555a9116100b257806366d555a91461012c578063715018a6146101415780637d98ebac14610149576100d4565b806315c14a4a146100d957806317859b4c146100f75780633a8fdd7d1461010c575b600080fd5b6100e16101ba565b6040516100ee91906133b4565b60405180910390f35b61010a610105366004612b8e565b6101c9565b005b61011f61011a366004612a4d565b610972565b6040516100ee91906133a6565b610134610b3b565b6040516100ee9190613302565b61010a610b4a565b61011f6101573660046129a8565b610bd9565b61011f61016a366004612907565b610d91565b610134610da3565b61017f610db2565b6040516100ee9190613398565b61010a61019a366004612acb565b610dd8565b61011f610f28565b61010a6101b5366004612907565b610f4c565b6000546001600160a01b031681565b8051516102459060281480156101e55750602882608001515110155b80156101fe57506014826080015151816101fb57fe5b06155b7f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c69642070617468206c656e67746873000000000000000000000000610f7c565b60606102548260000151610ff1565b905060606102658360800151610ff1565b90506103398160018351038151811061027a57fe5b60200260200101516001600160a01b03168360008151811061029857fe5b60200260200101516001600160a01b03161480156102f25750816000815181106102be57fe5b60200260200101516001600160a01b0316836001855103815181106102df57fe5b60200260200101516001600160a01b0316145b7f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c6964207061746820616c69676e6d656e7400000000000000000000610f7c565b61034161260c565b600254604080518082019091526001600160a01b03909116808252906020810161036b83876110e8565b81525091505060008060006103ad84600001518760008151811061038b57fe5b6020026020010151886001815181106103a057fe5b602002602001015161111e565b915091506000806103c889602001518a604001518686611159565b91509150610417827f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c69642061546f420000000000000000000000000000000000000000610f7c565b80945050505050606082602001515160020160405190808252806020026020018201604052801561046257816020015b61044f612624565b8152602001906001900390816104475790505b5090506040518060400160405280336001600160a01b0316815260200160008152508160008151811061049157fe5b60200260200101819052506040518060400160405280336001600160a01b031681526020016001815250816001815181106104c857fe5b602090810291909101015260005b83602001515181101561053b576040518060400160405280856020015183815181106104fe57fe5b60200260200101516001600160a01b03168152602001600081525082826002018151811061052857fe5b60209081029190910101526001016104d6565b50606061054786611245565b60608801516001600160a01b0316600090815260036020526040812054919250906105b58115157f416d6d526562616c616e63657250726f787956310000000000000000000000007f726f75746572206e6f74207265636f676e697a65640000000000000000000000610f7c565b61063589606001516001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156105f557600080fd5b505afa158015610609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061062d9190810190612925565b82878a611347565b60008151811061064157fe5b60200260200101519150506060600188516002010360405190808252806020026020018201604052801561068f57816020015b61067c61263b565b8152602001906001900390816106745790505b50905060008590506106da6001856001875103815181106106ac57fe5b6020026020010151866000815181106106c157fe5b6020026020010151868e606001518f6080015187611478565b826000815181106106e757fe5b60200260200101819052505060606107048760000151878b611519565b905061076b8160018351038151811061071957fe5b60200260200101518411157f416d6d526562616c616e63657250726f787956310000000000000000000000007f61726220636c6f73656400000000000000000000000000000000000000000000610f7c565b60005b8760200151518110156108a95761080b8860200151828151811061078e57fe5b60200260200101516001600160a01b03168783600201815181106107ae57fe5b6020026020010151600001516001600160a01b0316147f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c696420706f6f6c206f776e65722061646472657373000000000000610f7c565b61088760018260020187848151811061082057fe5b602002602001015188856001018151811061083757fe5b60200260200101518c60200151868151811061084f57fe5b602002602001015187878151811061086357fe5b602002602001015188886001018151811061087a57fe5b6020026020010151611632565b83826001018151811061089657fe5b602090810291909101015260010161076e565b506108ce60016000866001885103815181106108c157fe5b60200260200101516116b0565b826001845103815181106108de57fe5b60209081029190910101526000546040517fa67a6a450000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063a67a6a45906109349088908690600401613373565b600060405180830381600087803b15801561094e57600080fd5b505af1158015610962573d6000803e3d6000fd5b5050505050505050505050505050565b600080606061098384860186612943565b9250509150606061099382610ff1565b9050610a08886001600160a01b0316826000815181106109af57fe5b60200260200101516001600160a01b0316147f416d6d526562616c616e63657250726f787956310000000000000000000000007f706174685b305d206e6f742074616b6572546f6b656e00000000000000000000610f7c565b610a7e896001600160a01b031682600184510381518110610a2557fe5b60200260200101516001600160a01b0316147f416d6d526562616c616e63657250726f787956310000000000000000000000007f706174685b6c6173745d206e6f74206d616b6572546f6b656e00000000000000610f7c565b6040517f1f00ca740000000000000000000000000000000000000000000000000000000081526001600160a01b03841690631f00ca7490610ac5908a908590600401613453565b60006040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b199190810190612b3b565b600081518110610b2557fe5b6020026020010151935050505095945050505050565b6002546001600160a01b031681565b610b52610db2565b610b775760405162461bcd60e51b8152600401610b6e90613413565b60405180910390fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600080543390610c36906001600160a01b031682147f4f6e6c79446f6c6f6d6974654d617267696e00000000000000000000000000007f4f6e6c7920446f6c6f6d6974652063616e2063616c6c2066756e6374696f6e008461173e565b6000806060610c4786880188612943565b9250925092506060610c5882610ff1565b9050610c748a6001600160a01b0316826000815181106109af57fe5b610c918b6001600160a01b031682600184510381518110610a2557fe5b610c9c8a858b6117dc565b6040517f38ed17390000000000000000000000000000000000000000000000000000000081526060906001600160a01b038616906338ed173990610cec908d908890879030904290600401613473565b600060405180830381600087803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d429190810190612b3b565b9050610d668c8e83600185510381518110610d5957fe5b60200260200101516117dc565b80600182510381518110610d7657fe5b60200260200101519650505050505050979650505050505050565b60036020526000908152604090205481565b6001546001600160a01b031690565b6001546000906001600160a01b0316610dc9611897565b6001600160a01b031614905090565b610de0610db2565b610dfc5760405162461bcd60e51b8152600401610b6e90613413565b610e498382147f416d6d526562616c616e63657250726f787956310000000000000000000000007f726f75746572732f696e6974436f64657320696e76616c6964206c656e677468610f7c565b60005b83811015610f2157828282818110610e6057fe5b9050602002013560036000878785818110610e7757fe5b9050602002016020610e8c9190810190612907565b6001600160a01b03168152602081019190915260400160002055848482818110610eb257fe5b9050602002016020610ec79190810190612907565b6001600160a01b03167f8439af8069aecb3b77f115322be8bf93e7756c934ab30ea4fd1b59ea4227484a848484818110610efd57fe5b90506020020135604051610f1191906133a6565b60405180910390a2600101610e4c565b5050505050565b7f416d6d526562616c616e63657250726f7879563100000000000000000000000081565b610f54610db2565b610f705760405162461bcd60e51b8152600401610b6e90613413565b610f798161189b565b50565b82610fec57610f8a82611935565b7f3a20000000000000000000000000000000000000000000000000000000000000610fb483611935565b604051602001610fc69392919061323a565b60408051601f198184030181529082905262461bcd60e51b8252610b6e916004016133c2565b505050565b6060611058601483518161100157fe5b0615801561101157506028835110155b7f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c69642070617468206c656e67746800000000000000000000000000610f7c565b6060601483518161106557fe5b0460405190808252806020026020018201604052801561108f578160200160208202803883390190505b50905060005b81518110156110df5760148102848101602001518351606082901c908590859081106110bd57fe5b6001600160a01b03909216602092830291909101909101525050600101611095565b5090505b919050565b6060611115837f99e5d981ca94e9c872879e524a49120e24cbcf49f184de7f4f78583a822580a7846119cd565b90505b92915050565b60008061114d857f99e5d981ca94e9c872879e524a49120e24cbcf49f184de7f4f78583a822580a78686611ac2565b91509150935093915050565b6000808561117d84611171878963ffffffff611bab16565b9063ffffffff611be516565b1091506000611192858563ffffffff611bab16565b905060006111e86111b86103e5866111aa578a6111ac565b895b9063ffffffff611bab16565b6111db6103e86111ac886111cc578b6111ce565b8c5b879063ffffffff611bab16565b816111e257fe5b04611c27565b905060006103e58561120b57611206876103e863ffffffff611bab16565b61121d565b61121d886103e863ffffffff611bab16565b8161122457fe5b049050611237828263ffffffff611d7a16565b935050505094509492505050565b60005481516040805182815260208084028201019091526060926001600160a01b0316918391908015611282578160200160208202803883390190505b50905060005b845181101561133f57826001600160a01b0316638fae3be18683815181106112ac57fe5b60200260200101516040518263ffffffff1660e01b81526004016112d09190613302565b60206040518083038186803b1580156112e857600080fd5b505afa1580156112fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113209190810190612c06565b82828151811061132c57fe5b6020908102919091010152600101611288565b509392505050565b60606113996002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c696420706174680000000000000000000000000000000000000000610f7c565b81516040519080825280602002602001820160405280156113c4578160200160208202803883390190505b50905082816001835103815181106113d857fe5b60209081029190910101528151600019015b801561146f57600080611428888887600187038151811061140757fe5b602002602001015188878151811061141b57fe5b6020026020010151611dbc565b9150915061144a84848151811061143b57fe5b60200260200101518383611e15565b84600185038151811061145957fe5b60209081029190910101525050600019016113ea565b50949350505050565b61148061263b565b60408051610100810182526004815260208082018b90528251608081018452600080825292938401929091820190815260200160008152602001888152508152602001888152602001878152602001306001600160a01b0316815260200160001981526020018584866040516020016114fb93929190613346565b60408051601f19818403018152919052905298975050505050505050565b606061156b6002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c696420706174680000000000000000000000000000000000000000610f7c565b8151604051908082528060200260200182016040528015611596578160200160208202803883390190505b50905082816000815181106115a757fe5b60200260200101818152505060005b600183510381101561133f576000806115ec878685815181106115d557fe5b60200260200101518786600101815181106103a057fe5b9150915061160e8484815181106115ff57fe5b60200260200101518383611f1e565b84846001018151811061161d57fe5b602090810291909101015250506001016115b6565b61163a61263b565b604080516101008101909152806005815260208082018b905260408051608081018252600181529201919081016000815260200160008152602001868152508152602001878152602001868152602001856001600160a01b03168152602001888152602001836040516020016114fb91906133a6565b6116b861263b565b604080516101008101909152806002815260208082018790526040805160808101825260018152920191908101600081526020016001815260200160008152508152602001838152602001600019815260200160006001600160a01b031681526020018481526020016040518060200160405280600081525081525090505b9392505050565b836117d65761174c83611935565b7f3a2000000000000000000000000000000000000000000000000000000000000061177684611935565b7f203c0000000000000000000000000000000000000000000000000000000000006117a085612020565b604051610fc69594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001613262565b50505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815281906001600160a01b0385169063dd62ed3e906118259030908790600401613310565b60206040518083038186803b15801561183d57600080fd5b505afa158015611851573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118759190810190612c06565b1015610fec57610fec6001600160a01b0384168360001963ffffffff61218a16565b3390565b6001600160a01b0381166118c15760405162461bcd60e51b8152600401610b6e906133d3565b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b606080826040516020016119499190613219565b60408051601f19818403018152919052905060205b80156119b65781516000199091019082908290811061197957fe5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016156119b157600101815290506110e3565b61195e565b505060408051600081526020810190915292915050565b6060611a1f6002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c69642070617468206c656e67746800000000000000000000000000610f7c565b60606001835103604051908082528060200260200182016040528015611a4f578160200160208202803883390190505b50905060005b600184510381101561146f57611a9686858381518110611a7157fe5b6020026020010151868460010181518110611a8857fe5b6020026020010151886122e6565b828281518110611aa257fe5b6001600160a01b0390921660209283029190910190910152600101611a55565b6000806000611ad18585612359565b509050600080611ae38988888b6122e6565b6001600160a01b031663b432a82c6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b1b57600080fd5b505afa158015611b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b539190810190612bc3565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150826001600160a01b0316876001600160a01b031614611b98578082611b9b565b81815b909a909950975050505050505050565b600082611bba57506000611118565b82820282848281611bc757fe5b04146111155760405162461bcd60e51b8152600401610b6e90613403565b600061111583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612441565b600081611c36575060006110e3565b8160017001000000000000000000000000000000008210611c5c5760809190911c9060401b5b680100000000000000008210611c775760409190911c9060201b5b6401000000008210611c8e5760209190911c9060101b5b620100008210611ca35760109190911c9060081b5b6101008210611cb75760089190911c9060041b5b60108210611cca5760049190911c9060021b5b60088210611cd65760011b5b6001818581611ce157fe5b048201901c90506001818581611cf357fe5b048201901c90506001818581611d0557fe5b048201901c90506001818581611d1757fe5b048201901c90506001818581611d2957fe5b048201901c90506001818581611d3b57fe5b048201901c90506001818581611d4d57fe5b048201901c90506000818581611d5f57fe5b049050808210611d6f5780611d71565b815b95945050505050565b600061111583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612478565b6000806000611dcb8585612359565b509050600080611ddd8988888b6122e6565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b1b57600080fd5b6000611e65600085117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206f757470757420616d6f756e74000000000000610f7c565b611ebf600084118015611e785750600083115b7f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206c697175696469747900000000000000000000610f7c565b6000611ed76103e86111ac868863ffffffff611bab16565b90506000611ef16103e56111ac868963ffffffff611d7a16565b9050611f146001611f08848463ffffffff611be516565b9063ffffffff6124a416565b9695505050505050565b6000611f6e600085117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e7420696e70757420616d6f756e7400000000000000610f7c565b611fc7600084118015611e785750600083117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206c697175696469747900000000000000000000610f7c565b6000611fdb856103e563ffffffff611bab16565b90506000611fef828563ffffffff611bab16565b9050600061200983611f08886103e863ffffffff611bab16565b905080828161201457fe5b04979650505050505050565b60408051602a80825260608281019093526001600160a01b038416918391602082018180388339019050509050603060f81b8160008151811061205f57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b816001815181106120a057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b601481101561133f57600281026120eb600f85166124c9565b8382602903815181106120fa57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c935061213c600f85166124c9565b83826028038151811061214b57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c916001016120d2565b80158061222b57506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063dd62ed3e906121d99030908690600401613310565b60206040518083038186803b1580156121f157600080fd5b505afa158015612205573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122299190810190612c06565b155b6122475760405162461bcd60e51b8152600401610b6e90613433565b604051610fec9084907f095ea7b30000000000000000000000000000000000000000000000000000000090612282908690869060240161332b565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526124eb565b60008060006122f58686612359565b9150915086828260405160200161230d9291906131f3565b6040516020818303038152906040528051906020012085604051602001612336939291906132c0565b60408051601f198184030181529190528051602090910120979650505050505050565b6000806123bc836001600160a01b0316856001600160a01b031614157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f6964656e746963616c2061646472657373657300000000000000000000000000610f7c565b826001600160a01b0316846001600160a01b0316106123dc5782846123df565b83835b909250905061243a6001600160a01b03831615157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f7a65726f20616464726573730000000000000000000000000000000000000000610f7c565b9250929050565b600081836124625760405162461bcd60e51b8152600401610b6e91906133c2565b50600083858161246e57fe5b0495945050505050565b6000818484111561249c5760405162461bcd60e51b8152600401610b6e91906133c2565b505050900390565b6000828201838110156111155760405162461bcd60e51b8152600401610b6e906133e3565b6000600a8210156124e157506030810160f81b6110e3565b5060570160f81b90565b6124fd826001600160a01b03166125d0565b6125195760405162461bcd60e51b8152600401610b6e90613443565b60006060836001600160a01b031683604051612535919061322e565b6000604051808303816000865af19150503d8060008114612572576040519150601f19603f3d011682016040523d82523d6000602084013e612577565b606091505b5091509150816125995760405162461bcd60e51b8152600401610b6e906133f3565b8051156117d657808060200190516125b49190810190612b70565b6117d65760405162461bcd60e51b8152600401610b6e90613423565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061260457508115155b949350505050565b60408051808201909152600081526060602082015290565b604080518082019091526000808252602082015290565b60408051610100810182526000808252602082015290810161265b61268d565b8152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b803561111881613666565b805161111881613666565b60008083601f8401126126de57600080fd5b50813567ffffffffffffffff8111156126f657600080fd5b60208301915083602082028301111561243a57600080fd5b600082601f83011261271f57600080fd5b815161273261272d826134e3565b6134bc565b9150818183526020840193506020810190508385602084028201111561275757600080fd5b60005b83811015612783578161276d88826128f1565b845250602092830192919091019060010161275a565b5050505092915050565b80516111188161367a565b60008083601f8401126127aa57600080fd5b50813567ffffffffffffffff8111156127c257600080fd5b60208301915083600182028301111561243a57600080fd5b600082601f8301126127eb57600080fd5b81356127f961272d82613504565b9150808252602083016020830185838301111561281557600080fd5b6128208382846135f9565b50505092915050565b600060a0828403121561283b57600080fd5b61284560a06134bc565b9050813567ffffffffffffffff81111561285e57600080fd5b61286a848285016127da565b825250602061287b848483016128e6565b602083015250604061288f848285016128e6565b60408301525060606128a3848285016126b6565b606083015250608082013567ffffffffffffffff8111156128c357600080fd5b6128cf848285016127da565b60808301525092915050565b805161111881613683565b80356111188161368c565b80516111188161368c565b805161111881613695565b60006020828403121561291957600080fd5b600061260484846126b6565b60006020828403121561293757600080fd5b600061260484846126c1565b60008060006060848603121561295857600080fd5b600061296486866126b6565b9350506020612975868287016128e6565b925050604084013567ffffffffffffffff81111561299257600080fd5b61299e868287016127da565b9150509250925092565b600080600080600080600060c0888a0312156129c357600080fd5b60006129cf8a8a6126b6565b97505060206129e08a828b016126b6565b96505060406129f18a828b016126b6565b9550506060612a028a828b016126b6565b9450506080612a138a828b016128e6565b93505060a088013567ffffffffffffffff811115612a3057600080fd5b612a3c8a828b01612798565b925092505092959891949750929550565b600080600080600060808688031215612a6557600080fd5b6000612a7188886126b6565b9550506020612a82888289016126b6565b9450506040612a93888289016128e6565b935050606086013567ffffffffffffffff811115612ab057600080fd5b612abc88828901612798565b92509250509295509295909350565b60008060008060408587031215612ae157600080fd5b843567ffffffffffffffff811115612af857600080fd5b612b04878288016126cc565b9450945050602085013567ffffffffffffffff811115612b2357600080fd5b612b2f878288016126cc565b95989497509550505050565b600060208284031215612b4d57600080fd5b815167ffffffffffffffff811115612b6457600080fd5b6126048482850161270e565b600060208284031215612b8257600080fd5b6000612604848461278d565b600060208284031215612ba057600080fd5b813567ffffffffffffffff811115612bb757600080fd5b61260484828501612829565b600080600060608486031215612bd857600080fd5b6000612be486866128db565b9350506020612bf5868287016128db565b925050604061299e868287016128fc565b600060208284031215612c1857600080fd5b600061260484846128f1565b6000612c308383612c58565b505060200190565b600061111583836130e3565b6000612c5083836131cf565b505060400190565b612c618161353f565b82525050565b612c61612c738261353f565b613631565b6000612c8382613532565b612c8d8185613536565b9350612c988361352c565b8060005b83811015612cc6578151612cb08882612c24565b9750612cbb8361352c565b925050600101612c9c565b509495945050505050565b6000612cdc82613532565b612ce68185613536565b935083602082028501612cf88561352c565b8060005b85811015612d325784840389528151612d158582612c38565b9450612d208361352c565b60209a909a0199925050600101612cfc565b5091979650505050505050565b6000612d4a82613532565b612d548185613536565b9350612d5f8361352c565b8060005b83811015612cc6578151612d778882612c44565b9750612d828361352c565b925050600101612d63565b612c618161354a565b612c61612da28261354f565b613599565b612c61612da282613574565b612c6181613599565b612c61612da282613599565b6000612dd382613532565b612ddd8185613536565b9350612ded818560208601613605565b612df681613642565b9093019392505050565b6000612e0b82613532565b612e1581856110e3565b9350612e25818560208601613605565b9290920192915050565b612c61816135d8565b612c61816135e3565b612c61816135ee565b6000612e57602683613536565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612eb6601b83613536565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612eef602083613536565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000612f286001836110e3565b7fff00000000000000000000000000000000000000000000000000000000000000815260010192915050565b6000612f61602183613536565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612fc0602083613536565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000612ff9602a83613536565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e81527f6f74207375636365656400000000000000000000000000000000000000000000602082015260400192915050565b6000613058603683613536565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f81527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015260400192915050565b60006130b7601f83613536565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b80516000906101608401906130f88582612e38565b50602083015161310b6020860182612db3565b50604083015161311e6040860182613185565b50606083015161313160c0860182612db3565b50608083015161314460e0860182612db3565b5060a0830151613158610100860182612c58565b5060c083015161316c610120860182612db3565b5060e0830151848203610140860152611d718282612dc8565b805160808301906131968482612d8d565b5060208201516131a96020850182612e41565b5060408201516131bc6040850182612e41565b5060608201516117d66060850182612db3565b805160408301906131e08482612c58565b5060208201516117d66020850182612db3565b60006131ff8285612c67565b60148201915061320f8284612c67565b5060140192915050565b60006132258284612dbc565b50602001919050565b60006117378284612e00565b60006132468286612e00565b91506132528285612da7565b600282019150611d718284612e00565b600061326e8289612e00565b915061327a8288612da7565b60028201915061328a8287612e00565b91506132968286612da7565b6002820191506132a68285612e00565b91506132b28284612d96565b506001019695505050505050565b60006132cb82612f1b565b91506132d78286612c67565b6014820191506132e78285612dbc565b6020820191506132f78284612dbc565b506020019392505050565b602081016111188284612c58565b6040810161331e8285612c58565b6117376020830184612c58565b604081016133398285612c58565b6117376020830184612db3565b606081016133548286612c58565b6133616020830185612db3565b8181036040830152611d718184612dc8565b604080825281016133848185612d3f565b905081810360208301526126048184612cd1565b602081016111188284612d8d565b602081016111188284612db3565b602081016111188284612e2f565b602080825281016111158184612dc8565b6020808252810161111881612e4a565b6020808252810161111881612ea9565b6020808252810161111881612ee2565b6020808252810161111881612f54565b6020808252810161111881612fb3565b6020808252810161111881612fec565b602080825281016111188161304b565b60208082528101611118816130aa565b604081016134618285612db3565b81810360208301526126048184612c78565b60a081016134818288612db3565b61348e6020830187612db3565b81810360408301526134a08186612c78565b90506134af6060830185612c58565b611f146080830184612db3565b60405181810167ffffffffffffffff811182821017156134db57600080fd5b604052919050565b600067ffffffffffffffff8211156134fa57600080fd5b5060209081020190565b600067ffffffffffffffff82111561351b57600080fd5b506020601f91909101601f19160190565b60200190565b5190565b90815260200190565b6000611118826135c3565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b806110e381613652565b806110e38161365c565b6dffffffffffffffffffffffffffff1690565b6001600160a01b031690565b63ffffffff1690565b60006111188261353f565b60006111188261359c565b6000611118826135a6565b82818337506000910152565b60005b83811015613620578181015183820152602001613608565b838111156117d65750506000910152565b60006111188260006111188261364c565b601f01601f191690565b60601b90565b60098110610f7957fe5b60028110610f7957fe5b61366f8161353f565b8114610f7957600080fd5b61366f8161354a565b61366f816135b0565b61366f81613599565b61366f816135cf56fea365627a7a723158205550fd8f74b1c37e1f26eef48b5d8d308470c4e7e070c85f3f00426b895056986c6578706572696d656e74616cf564736f6c63430005100040",
|
|
336
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80638d5c659e11610081578063c275f5dd1161005b578063c275f5dd1461018c578063d5dbd5151461019f578063f2fde38b146101a7576100d4565b80638d5c659e1461015c5780638da5cb5b1461016f5780638f32d59b14610177576100d4565b806366d555a9116100b257806366d555a91461012c578063715018a6146101415780637d98ebac14610149576100d4565b806315c14a4a146100d957806317859b4c146100f75780633a8fdd7d1461010c575b600080fd5b6100e16101ba565b6040516100ee91906133b4565b60405180910390f35b61010a610105366004612b8e565b6101c9565b005b61011f61011a366004612a4d565b610972565b6040516100ee91906133a6565b610134610b3b565b6040516100ee9190613302565b61010a610b4a565b61011f6101573660046129a8565b610bd9565b61011f61016a366004612907565b610d91565b610134610da3565b61017f610db2565b6040516100ee9190613398565b61010a61019a366004612acb565b610dd8565b61011f610f28565b61010a6101b5366004612907565b610f4c565b6000546001600160a01b031681565b8051516102459060281480156101e55750602882608001515110155b80156101fe57506014826080015151816101fb57fe5b06155b7f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c69642070617468206c656e67746873000000000000000000000000610f7c565b60606102548260000151610ff1565b905060606102658360800151610ff1565b90506103398160018351038151811061027a57fe5b60200260200101516001600160a01b03168360008151811061029857fe5b60200260200101516001600160a01b03161480156102f25750816000815181106102be57fe5b60200260200101516001600160a01b0316836001855103815181106102df57fe5b60200260200101516001600160a01b0316145b7f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c6964207061746820616c69676e6d656e7400000000000000000000610f7c565b61034161260c565b600254604080518082019091526001600160a01b03909116808252906020810161036b83876110e8565b81525091505060008060006103ad84600001518760008151811061038b57fe5b6020026020010151886001815181106103a057fe5b602002602001015161111e565b915091506000806103c889602001518a604001518686611159565b91509150610417827f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c69642061546f420000000000000000000000000000000000000000610f7c565b80945050505050606082602001515160020160405190808252806020026020018201604052801561046257816020015b61044f612624565b8152602001906001900390816104475790505b5090506040518060400160405280336001600160a01b0316815260200160008152508160008151811061049157fe5b60200260200101819052506040518060400160405280336001600160a01b031681526020016001815250816001815181106104c857fe5b602090810291909101015260005b83602001515181101561053b576040518060400160405280856020015183815181106104fe57fe5b60200260200101516001600160a01b03168152602001600081525082826002018151811061052857fe5b60209081029190910101526001016104d6565b50606061054786611245565b60608801516001600160a01b0316600090815260036020526040812054919250906105b58115157f416d6d526562616c616e63657250726f787956310000000000000000000000007f726f75746572206e6f74207265636f676e697a65640000000000000000000000610f7c565b61063589606001516001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156105f557600080fd5b505afa158015610609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061062d9190810190612925565b82878a611347565b60008151811061064157fe5b60200260200101519150506060600188516002010360405190808252806020026020018201604052801561068f57816020015b61067c61263b565b8152602001906001900390816106745790505b50905060008590506106da6001856001875103815181106106ac57fe5b6020026020010151866000815181106106c157fe5b6020026020010151868e606001518f6080015187611478565b826000815181106106e757fe5b60200260200101819052505060606107048760000151878b611519565b905061076b8160018351038151811061071957fe5b60200260200101518411157f416d6d526562616c616e63657250726f787956310000000000000000000000007f61726220636c6f73656400000000000000000000000000000000000000000000610f7c565b60005b8760200151518110156108a95761080b8860200151828151811061078e57fe5b60200260200101516001600160a01b03168783600201815181106107ae57fe5b6020026020010151600001516001600160a01b0316147f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c696420706f6f6c206f776e65722061646472657373000000000000610f7c565b61088760018260020187848151811061082057fe5b602002602001015188856001018151811061083757fe5b60200260200101518c60200151868151811061084f57fe5b602002602001015187878151811061086357fe5b602002602001015188886001018151811061087a57fe5b6020026020010151611632565b83826001018151811061089657fe5b602090810291909101015260010161076e565b506108ce60016000866001885103815181106108c157fe5b60200260200101516116b0565b826001845103815181106108de57fe5b60209081029190910101526000546040517fa67a6a450000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063a67a6a45906109349088908690600401613373565b600060405180830381600087803b15801561094e57600080fd5b505af1158015610962573d6000803e3d6000fd5b5050505050505050505050505050565b600080606061098384860186612943565b9250509150606061099382610ff1565b9050610a08886001600160a01b0316826000815181106109af57fe5b60200260200101516001600160a01b0316147f416d6d526562616c616e63657250726f787956310000000000000000000000007f706174685b305d206e6f742074616b6572546f6b656e00000000000000000000610f7c565b610a7e896001600160a01b031682600184510381518110610a2557fe5b60200260200101516001600160a01b0316147f416d6d526562616c616e63657250726f787956310000000000000000000000007f706174685b6c6173745d206e6f74206d616b6572546f6b656e00000000000000610f7c565b6040517f1f00ca740000000000000000000000000000000000000000000000000000000081526001600160a01b03841690631f00ca7490610ac5908a908590600401613453565b60006040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b199190810190612b3b565b600081518110610b2557fe5b6020026020010151935050505095945050505050565b6002546001600160a01b031681565b610b52610db2565b610b775760405162461bcd60e51b8152600401610b6e90613413565b60405180910390fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600080543390610c36906001600160a01b031682147f4f6e6c79446f6c6f6d6974654d617267696e00000000000000000000000000007f4f6e6c7920446f6c6f6d6974652063616e2063616c6c2066756e6374696f6e008461173e565b6000806060610c4786880188612943565b9250925092506060610c5882610ff1565b9050610c748a6001600160a01b0316826000815181106109af57fe5b610c918b6001600160a01b031682600184510381518110610a2557fe5b610c9c8a858b6117dc565b6040517f38ed17390000000000000000000000000000000000000000000000000000000081526060906001600160a01b038616906338ed173990610cec908d908890879030904290600401613473565b600060405180830381600087803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d429190810190612b3b565b9050610d668c8e83600185510381518110610d5957fe5b60200260200101516117dc565b80600182510381518110610d7657fe5b60200260200101519650505050505050979650505050505050565b60036020526000908152604090205481565b6001546001600160a01b031690565b6001546000906001600160a01b0316610dc9611897565b6001600160a01b031614905090565b610de0610db2565b610dfc5760405162461bcd60e51b8152600401610b6e90613413565b610e498382147f416d6d526562616c616e63657250726f787956310000000000000000000000007f726f75746572732f696e6974436f64657320696e76616c6964206c656e677468610f7c565b60005b83811015610f2157828282818110610e6057fe5b9050602002013560036000878785818110610e7757fe5b9050602002016020610e8c9190810190612907565b6001600160a01b03168152602081019190915260400160002055848482818110610eb257fe5b9050602002016020610ec79190810190612907565b6001600160a01b03167f8439af8069aecb3b77f115322be8bf93e7756c934ab30ea4fd1b59ea4227484a848484818110610efd57fe5b90506020020135604051610f1191906133a6565b60405180910390a2600101610e4c565b5050505050565b7f416d6d526562616c616e63657250726f7879563100000000000000000000000081565b610f54610db2565b610f705760405162461bcd60e51b8152600401610b6e90613413565b610f798161189b565b50565b82610fec57610f8a82611935565b7f3a20000000000000000000000000000000000000000000000000000000000000610fb483611935565b604051602001610fc69392919061323a565b60408051601f198184030181529082905262461bcd60e51b8252610b6e916004016133c2565b505050565b6060611058601483518161100157fe5b0615801561101157506028835110155b7f416d6d526562616c616e63657250726f787956310000000000000000000000007f696e76616c69642070617468206c656e67746800000000000000000000000000610f7c565b6060601483518161106557fe5b0460405190808252806020026020018201604052801561108f578160200160208202803883390190505b50905060005b81518110156110df5760148102848101602001518351606082901c908590859081106110bd57fe5b6001600160a01b03909216602092830291909101909101525050600101611095565b5090505b919050565b6060611115837f99e5d981ca94e9c872879e524a49120e24cbcf49f184de7f4f78583a822580a7846119cd565b90505b92915050565b60008061114d857f99e5d981ca94e9c872879e524a49120e24cbcf49f184de7f4f78583a822580a78686611ac2565b91509150935093915050565b6000808561117d84611171878963ffffffff611bab16565b9063ffffffff611be516565b1091506000611192858563ffffffff611bab16565b905060006111e86111b86103e5866111aa578a6111ac565b895b9063ffffffff611bab16565b6111db6103e86111ac886111cc578b6111ce565b8c5b879063ffffffff611bab16565b816111e257fe5b04611c27565b905060006103e58561120b57611206876103e863ffffffff611bab16565b61121d565b61121d886103e863ffffffff611bab16565b8161122457fe5b049050611237828263ffffffff611d7a16565b935050505094509492505050565b60005481516040805182815260208084028201019091526060926001600160a01b0316918391908015611282578160200160208202803883390190505b50905060005b845181101561133f57826001600160a01b0316638fae3be18683815181106112ac57fe5b60200260200101516040518263ffffffff1660e01b81526004016112d09190613302565b60206040518083038186803b1580156112e857600080fd5b505afa1580156112fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113209190810190612c06565b82828151811061132c57fe5b6020908102919091010152600101611288565b509392505050565b60606113996002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c696420706174680000000000000000000000000000000000000000610f7c565b81516040519080825280602002602001820160405280156113c4578160200160208202803883390190505b50905082816001835103815181106113d857fe5b60209081029190910101528151600019015b801561146f57600080611428888887600187038151811061140757fe5b602002602001015188878151811061141b57fe5b6020026020010151611dbc565b9150915061144a84848151811061143b57fe5b60200260200101518383611e15565b84600185038151811061145957fe5b60209081029190910101525050600019016113ea565b50949350505050565b61148061263b565b60408051610100810182526004815260208082018b90528251608081018452600080825292938401929091820190815260200160008152602001888152508152602001888152602001878152602001306001600160a01b0316815260200160001981526020018584866040516020016114fb93929190613346565b60408051601f19818403018152919052905298975050505050505050565b606061156b6002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c696420706174680000000000000000000000000000000000000000610f7c565b8151604051908082528060200260200182016040528015611596578160200160208202803883390190505b50905082816000815181106115a757fe5b60200260200101818152505060005b600183510381101561133f576000806115ec878685815181106115d557fe5b60200260200101518786600101815181106103a057fe5b9150915061160e8484815181106115ff57fe5b60200260200101518383611f1e565b84846001018151811061161d57fe5b602090810291909101015250506001016115b6565b61163a61263b565b604080516101008101909152806005815260208082018b905260408051608081018252600181529201919081016000815260200160008152602001868152508152602001878152602001868152602001856001600160a01b03168152602001888152602001836040516020016114fb91906133a6565b6116b861263b565b604080516101008101909152806002815260208082018790526040805160808101825260018152920191908101600081526020016001815260200160008152508152602001838152602001600019815260200160006001600160a01b031681526020018481526020016040518060200160405280600081525081525090505b9392505050565b836117d65761174c83611935565b7f3a2000000000000000000000000000000000000000000000000000000000000061177684611935565b7f203c0000000000000000000000000000000000000000000000000000000000006117a085612020565b604051610fc69594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001613262565b50505050565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815281906001600160a01b0385169063dd62ed3e906118259030908790600401613310565b60206040518083038186803b15801561183d57600080fd5b505afa158015611851573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118759190810190612c06565b1015610fec57610fec6001600160a01b0384168360001963ffffffff61218a16565b3390565b6001600160a01b0381166118c15760405162461bcd60e51b8152600401610b6e906133d3565b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b606080826040516020016119499190613219565b60408051601f19818403018152919052905060205b80156119b65781516000199091019082908290811061197957fe5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016156119b157600101815290506110e3565b61195e565b505060408051600081526020810190915292915050565b6060611a1f6002835110157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e76616c69642070617468206c656e67746800000000000000000000000000610f7c565b60606001835103604051908082528060200260200182016040528015611a4f578160200160208202803883390190505b50905060005b600184510381101561146f57611a9686858381518110611a7157fe5b6020026020010151868460010181518110611a8857fe5b6020026020010151886122e6565b828281518110611aa257fe5b6001600160a01b0390921660209283029190910190910152600101611a55565b6000806000611ad18585612359565b509050600080611ae38988888b6122e6565b6001600160a01b031663b432a82c6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b1b57600080fd5b505afa158015611b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b539190810190612bc3565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150826001600160a01b0316876001600160a01b031614611b98578082611b9b565b81815b909a909950975050505050505050565b600082611bba57506000611118565b82820282848281611bc757fe5b04146111155760405162461bcd60e51b8152600401610b6e90613403565b600061111583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612441565b600081611c36575060006110e3565b8160017001000000000000000000000000000000008210611c5c5760809190911c9060401b5b680100000000000000008210611c775760409190911c9060201b5b6401000000008210611c8e5760209190911c9060101b5b620100008210611ca35760109190911c9060081b5b6101008210611cb75760089190911c9060041b5b60108210611cca5760049190911c9060021b5b60088210611cd65760011b5b6001818581611ce157fe5b048201901c90506001818581611cf357fe5b048201901c90506001818581611d0557fe5b048201901c90506001818581611d1757fe5b048201901c90506001818581611d2957fe5b048201901c90506001818581611d3b57fe5b048201901c90506001818581611d4d57fe5b048201901c90506000818581611d5f57fe5b049050808210611d6f5780611d71565b815b95945050505050565b600061111583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612478565b6000806000611dcb8585612359565b509050600080611ddd8988888b6122e6565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b1b57600080fd5b6000611e65600085117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206f757470757420616d6f756e74000000000000610f7c565b611ebf600084118015611e785750600083115b7f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206c697175696469747900000000000000000000610f7c565b6000611ed76103e86111ac868863ffffffff611bab16565b90506000611ef16103e56111ac868963ffffffff611d7a16565b9050611f146001611f08848463ffffffff611be516565b9063ffffffff6124a416565b9695505050505050565b6000611f6e600085117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e7420696e70757420616d6f756e7400000000000000610f7c565b611fc7600084118015611e785750600083117f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f696e73756666696369656e74206c697175696469747900000000000000000000610f7c565b6000611fdb856103e563ffffffff611bab16565b90506000611fef828563ffffffff611bab16565b9050600061200983611f08886103e863ffffffff611bab16565b905080828161201457fe5b04979650505050505050565b60408051602a80825260608281019093526001600160a01b038416918391602082018180388339019050509050603060f81b8160008151811061205f57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b816001815181106120a057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b601481101561133f57600281026120eb600f85166124c9565b8382602903815181106120fa57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c935061213c600f85166124c9565b83826028038151811061214b57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c916001016120d2565b80158061222b57506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063dd62ed3e906121d99030908690600401613310565b60206040518083038186803b1580156121f157600080fd5b505afa158015612205573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122299190810190612c06565b155b6122475760405162461bcd60e51b8152600401610b6e90613433565b604051610fec9084907f095ea7b30000000000000000000000000000000000000000000000000000000090612282908690869060240161332b565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526124eb565b60008060006122f58686612359565b9150915086828260405160200161230d9291906131f3565b6040516020818303038152906040528051906020012085604051602001612336939291906132c0565b60408051601f198184030181529190528051602090910120979650505050505050565b6000806123bc836001600160a01b0316856001600160a01b031614157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f6964656e746963616c2061646472657373657300000000000000000000000000610f7c565b826001600160a01b0316846001600160a01b0316106123dc5782846123df565b83835b909250905061243a6001600160a01b03831615157f446f6c6f6d697465416d6d4c69627261727900000000000000000000000000007f7a65726f20616464726573730000000000000000000000000000000000000000610f7c565b9250929050565b600081836124625760405162461bcd60e51b8152600401610b6e91906133c2565b50600083858161246e57fe5b0495945050505050565b6000818484111561249c5760405162461bcd60e51b8152600401610b6e91906133c2565b505050900390565b6000828201838110156111155760405162461bcd60e51b8152600401610b6e906133e3565b6000600a8210156124e157506030810160f81b6110e3565b5060570160f81b90565b6124fd826001600160a01b03166125d0565b6125195760405162461bcd60e51b8152600401610b6e90613443565b60006060836001600160a01b031683604051612535919061322e565b6000604051808303816000865af19150503d8060008114612572576040519150601f19603f3d011682016040523d82523d6000602084013e612577565b606091505b5091509150816125995760405162461bcd60e51b8152600401610b6e906133f3565b8051156117d657808060200190516125b49190810190612b70565b6117d65760405162461bcd60e51b8152600401610b6e90613423565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061260457508115155b949350505050565b60408051808201909152600081526060602082015290565b604080518082019091526000808252602082015290565b60408051610100810182526000808252602082015290810161265b61268d565b8152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b803561111881613666565b805161111881613666565b60008083601f8401126126de57600080fd5b50813567ffffffffffffffff8111156126f657600080fd5b60208301915083602082028301111561243a57600080fd5b600082601f83011261271f57600080fd5b815161273261272d826134e3565b6134bc565b9150818183526020840193506020810190508385602084028201111561275757600080fd5b60005b83811015612783578161276d88826128f1565b845250602092830192919091019060010161275a565b5050505092915050565b80516111188161367a565b60008083601f8401126127aa57600080fd5b50813567ffffffffffffffff8111156127c257600080fd5b60208301915083600182028301111561243a57600080fd5b600082601f8301126127eb57600080fd5b81356127f961272d82613504565b9150808252602083016020830185838301111561281557600080fd5b6128208382846135f9565b50505092915050565b600060a0828403121561283b57600080fd5b61284560a06134bc565b9050813567ffffffffffffffff81111561285e57600080fd5b61286a848285016127da565b825250602061287b848483016128e6565b602083015250604061288f848285016128e6565b60408301525060606128a3848285016126b6565b606083015250608082013567ffffffffffffffff8111156128c357600080fd5b6128cf848285016127da565b60808301525092915050565b805161111881613683565b80356111188161368c565b80516111188161368c565b805161111881613695565b60006020828403121561291957600080fd5b600061260484846126b6565b60006020828403121561293757600080fd5b600061260484846126c1565b60008060006060848603121561295857600080fd5b600061296486866126b6565b9350506020612975868287016128e6565b925050604084013567ffffffffffffffff81111561299257600080fd5b61299e868287016127da565b9150509250925092565b600080600080600080600060c0888a0312156129c357600080fd5b60006129cf8a8a6126b6565b97505060206129e08a828b016126b6565b96505060406129f18a828b016126b6565b9550506060612a028a828b016126b6565b9450506080612a138a828b016128e6565b93505060a088013567ffffffffffffffff811115612a3057600080fd5b612a3c8a828b01612798565b925092505092959891949750929550565b600080600080600060808688031215612a6557600080fd5b6000612a7188886126b6565b9550506020612a82888289016126b6565b9450506040612a93888289016128e6565b935050606086013567ffffffffffffffff811115612ab057600080fd5b612abc88828901612798565b92509250509295509295909350565b60008060008060408587031215612ae157600080fd5b843567ffffffffffffffff811115612af857600080fd5b612b04878288016126cc565b9450945050602085013567ffffffffffffffff811115612b2357600080fd5b612b2f878288016126cc565b95989497509550505050565b600060208284031215612b4d57600080fd5b815167ffffffffffffffff811115612b6457600080fd5b6126048482850161270e565b600060208284031215612b8257600080fd5b6000612604848461278d565b600060208284031215612ba057600080fd5b813567ffffffffffffffff811115612bb757600080fd5b61260484828501612829565b600080600060608486031215612bd857600080fd5b6000612be486866128db565b9350506020612bf5868287016128db565b925050604061299e868287016128fc565b600060208284031215612c1857600080fd5b600061260484846128f1565b6000612c308383612c58565b505060200190565b600061111583836130e3565b6000612c5083836131cf565b505060400190565b612c618161353f565b82525050565b612c61612c738261353f565b613631565b6000612c8382613532565b612c8d8185613536565b9350612c988361352c565b8060005b83811015612cc6578151612cb08882612c24565b9750612cbb8361352c565b925050600101612c9c565b509495945050505050565b6000612cdc82613532565b612ce68185613536565b935083602082028501612cf88561352c565b8060005b85811015612d325784840389528151612d158582612c38565b9450612d208361352c565b60209a909a0199925050600101612cfc565b5091979650505050505050565b6000612d4a82613532565b612d548185613536565b9350612d5f8361352c565b8060005b83811015612cc6578151612d778882612c44565b9750612d828361352c565b925050600101612d63565b612c618161354a565b612c61612da28261354f565b613599565b612c61612da282613574565b612c6181613599565b612c61612da282613599565b6000612dd382613532565b612ddd8185613536565b9350612ded818560208601613605565b612df681613642565b9093019392505050565b6000612e0b82613532565b612e1581856110e3565b9350612e25818560208601613605565b9290920192915050565b612c61816135d8565b612c61816135e3565b612c61816135ee565b6000612e57602683613536565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612eb6601b83613536565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612eef602083613536565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000612f286001836110e3565b7fff00000000000000000000000000000000000000000000000000000000000000815260010192915050565b6000612f61602183613536565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612fc0602083613536565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000612ff9602a83613536565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e81527f6f74207375636365656400000000000000000000000000000000000000000000602082015260400192915050565b6000613058603683613536565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f81527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015260400192915050565b60006130b7601f83613536565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b80516000906101608401906130f88582612e38565b50602083015161310b6020860182612db3565b50604083015161311e6040860182613185565b50606083015161313160c0860182612db3565b50608083015161314460e0860182612db3565b5060a0830151613158610100860182612c58565b5060c083015161316c610120860182612db3565b5060e0830151848203610140860152611d718282612dc8565b805160808301906131968482612d8d565b5060208201516131a96020850182612e41565b5060408201516131bc6040850182612e41565b5060608201516117d66060850182612db3565b805160408301906131e08482612c58565b5060208201516117d66020850182612db3565b60006131ff8285612c67565b60148201915061320f8284612c67565b5060140192915050565b60006132258284612dbc565b50602001919050565b60006117378284612e00565b60006132468286612e00565b91506132528285612da7565b600282019150611d718284612e00565b600061326e8289612e00565b915061327a8288612da7565b60028201915061328a8287612e00565b91506132968286612da7565b6002820191506132a68285612e00565b91506132b28284612d96565b506001019695505050505050565b60006132cb82612f1b565b91506132d78286612c67565b6014820191506132e78285612dbc565b6020820191506132f78284612dbc565b506020019392505050565b602081016111188284612c58565b6040810161331e8285612c58565b6117376020830184612c58565b604081016133398285612c58565b6117376020830184612db3565b606081016133548286612c58565b6133616020830185612db3565b8181036040830152611d718184612dc8565b604080825281016133848185612d3f565b905081810360208301526126048184612cd1565b602081016111188284612d8d565b602081016111188284612db3565b602081016111188284612e2f565b602080825281016111158184612dc8565b6020808252810161111881612e4a565b6020808252810161111881612ea9565b6020808252810161111881612ee2565b6020808252810161111881612f54565b6020808252810161111881612fb3565b6020808252810161111881612fec565b602080825281016111188161304b565b60208082528101611118816130aa565b604081016134618285612db3565b81810360208301526126048184612c78565b60a081016134818288612db3565b61348e6020830187612db3565b81810360408301526134a08186612c78565b90506134af6060830185612c58565b611f146080830184612db3565b60405181810167ffffffffffffffff811182821017156134db57600080fd5b604052919050565b600067ffffffffffffffff8211156134fa57600080fd5b5060209081020190565b600067ffffffffffffffff82111561351b57600080fd5b506020601f91909101601f19160190565b60200190565b5190565b90815260200190565b6000611118826135c3565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b806110e381613652565b806110e38161365c565b6dffffffffffffffffffffffffffff1690565b6001600160a01b031690565b63ffffffff1690565b60006111188261353f565b60006111188261359c565b6000611118826135a6565b82818337506000910152565b60005b83811015613620578181015183820152602001613608565b838111156117d65750506000910152565b60006111188260006111188261364c565b601f01601f191690565b60601b90565b60098110610f7957fe5b60028110610f7957fe5b61366f8161353f565b8114610f7957600080fd5b61366f8161354a565b61366f816135b0565b61366f81613599565b61366f816135cf56fea365627a7a723158205550fd8f74b1c37e1f26eef48b5d8d308470c4e7e070c85f3f00426b895056986c6578706572696d656e74616cf564736f6c63430005100040",
|
|
337
337
|
"sourceMap": "1699:13600:27:-;;;2422:633;8:9:-1;5:2;;;30:1;27;20:12;5:2;2422:633:27;;;;;;;;;;;;;;;;;;;;;1293:15:6;:49;;-1:-1:-1;;;;;;1293:49:6;-1:-1:-1;;;;;1293:49:6;;;;;718:12:125;:10;:12::i;:::-;740:6;:18;;-1:-1:-1;;;;;;740:18:125;-1:-1:-1;;;;;740:18:125;;;;;;;;773:43;;740:18;;-1:-1:-1;740:18:125;-1:-1:-1;;773:43:125;;-1:-1:-1;;773:43:125;-1:-1:-1;2648:20:27;:41;;-1:-1:-1;;;;;;2648:41:27;-1:-1:-1;;;;;2648:41:27;;;;;2744:21;;2726:14;;2700:141;;2726:39;2779:4;2700:141;:12;;;;;;;:141;;:::i;:::-;2856:6;2851:198;2872:7;:14;2868:1;:18;2851:198;;;2950:14;2965:1;2950:17;;;;;;;;;;;;;;2907:28;:40;2936:7;2944:1;2936:10;;;;;;;;;;;;;;-1:-1:-1;;;;;2907:40:27;-1:-1:-1;;;;;2907:40:27;;;;;;;;;;;;:60;;;;3008:7;3016:1;3008:10;;;;;;;;;;;;;;-1:-1:-1;;;;;2986:52:27;;3020:14;3035:1;3020:17;;;;;;;;;;;;;;2986:52;;;;;;;;;;;;;;;2888:3;;2851:198;;;;2422:633;;;;1699:13600;;788:96:122;867:10;788:96;:::o;1294:426:77:-;1428:4;1423:291;;1542:24;1561:4;-1:-1:-1;;;;;1542:18:77;:24;:::i;:::-;-1:-1:-1;;;1623:26:77;1642:6;-1:-1:-1;;;;;1623:18:77;:26;:::i;:::-;1500:171;;;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;1500:171:77;;;;-1:-1:-1;;;1448:255:77;;;;;;;;;;;;;;;;1423:291;1294:426;;;:::o;6359:966::-;6462:12;6537:19;6576:5;6559:23;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;6559:23:77;;;;-1:-1:-1;49:4;6688:571:77;6709:5;;6688:571;;6960:9;;-1:-1:-1;;6862:3:77;;;;6960:6;;6862:3;;6960:9;;;;;;;;;;;;:14;6956:293;;7015:1;7011:5;7141:22;;7148:6;-1:-1:-1;7221:13:77;;6956:293;6688:571;;;-1:-1:-1;;7306:12:77;;;7316:1;7306:12;;;;;;;;;-1:-1:-1;6359:966:77;;;;:::o;5:134:-1:-;83:13;;101:33;83:13;101:33;;;68:71;;;;;164:722;;292:3;285:4;277:6;273:17;269:27;259:2;;310:1;307;300:12;259:2;340:6;334:13;362:80;377:64;434:6;377:64;;;362:80;;;353:89;;459:5;484:6;477:5;470:21;514:4;506:6;502:17;492:27;;536:4;531:3;527:14;520:21;;589:6;636:3;628:4;620:6;616:17;611:3;607:27;604:36;601:2;;;653:1;650;643:12;601:2;678:1;663:217;688:6;685:1;682:13;663:217;;;746:3;768:48;812:3;800:10;768:48;;;756:61;;-1:-1;840:4;831:14;;;;859;;;;;710:1;703:9;663:217;;;667:14;252:634;;;;;;;;912:722;;1040:3;1033:4;1025:6;1021:17;1017:27;1007:2;;1058:1;1055;1048:12;1007:2;1088:6;1082:13;1110:80;1125:64;1182:6;1125:64;;1110:80;1101:89;;1207:5;1232:6;1225:5;1218:21;1262:4;1254:6;1250:17;1240:27;;1284:4;1279:3;1275:14;1268:21;;1337:6;1384:3;1376:4;1368:6;1364:17;1359:3;1355:27;1352:36;1349:2;;;1401:1;1398;1391:12;1349:2;1426:1;1411:217;1436:6;1433:1;1430:13;1411:217;;;1494:3;1516:48;1560:3;1548:10;1516:48;;;1504:61;;-1:-1;1588:4;1579:14;;;;1607;;;;;1458:1;1451:9;1411:217;;1642:134;1720:13;;1738:33;1720:13;1738:33;;1783:930;;;;;1999:3;1987:9;1978:7;1974:23;1970:33;1967:2;;;2016:1;2013;2006:12;1967:2;2051:1;2068:64;2124:7;2104:9;2068:64;;;2058:74;;2030:108;2169:2;2187:64;2243:7;2234:6;2223:9;2219:22;2187:64;;;2177:74;;2148:109;2309:2;2298:9;2294:18;2288:25;-1:-1;;;;;2325:6;2322:30;2319:2;;;2365:1;2362;2355:12;2319:2;2385:89;2466:7;2457:6;2446:9;2442:22;2385:89;;;2375:99;;2267:213;2532:2;2521:9;2517:18;2511:25;-1:-1;;;;;2548:6;2545:30;2542:2;;;2588:1;2585;2578:12;2542:2;2608:89;2689:7;2680:6;2669:9;2665:22;2608:89;;;2598:99;;2490:213;1961:752;;;;;;;;2720:148;2819:43;2838:23;2855:5;2838:23;;;2819:43;;;2814:3;2807:56;2801:67;;;2875:113;2958:24;2976:5;2958:24;;2995:152;3096:45;3116:24;3134:5;3116:24;;3154:356;;3282:38;3314:5;3282:38;;;3332:88;3413:6;3408:3;3332:88;;;3325:95;;3425:52;3470:6;3465:3;3458:4;3451:5;3447:16;3425:52;;;3489:16;;;;;3262:248;-1:-1;;3262:248;3517:347;;3629:39;3662:5;3629:39;;;3680:71;3744:6;3739:3;3680:71;;;3673:78;;3756:52;3801:6;3796:3;3789:4;3782:5;3778:16;3756:52;;;3829:29;3851:6;3829:29;;;3820:39;;;;3609:255;-1:-1;;;3609:255;3871:244;;3990:75;4061:3;4052:6;3990:75;;;-1:-1;4087:2;4078:12;;3978:137;-1:-1;3978:137;4122:553;;4338:93;4427:3;4418:6;4338:93;;;4331:100;;4442:73;4511:3;4502:6;4442:73;;;4537:1;4532:3;4528:11;4521:18;;4557:93;4646:3;4637:6;4557:93;;;4550:100;4319:356;-1:-1;;;;;4319:356;4682:213;4800:2;4785:18;;4814:71;4789:9;4858:6;4814:71;;4902:301;5040:2;5054:47;;;5025:18;;5115:78;5025:18;5179:6;5115:78;;;5107:86;5011:192;-1:-1;;;5011:192;5210:256;5272:2;5266:9;5298:17;;;-1:-1;;;;;5358:34;;5394:22;;;5355:62;5352:2;;;5430:1;5427;5420:12;5352:2;5446;5439:22;5250:216;;-1:-1;5250:216;5473:304;;-1:-1;;;;;5624:6;5621:30;5618:2;;;5664:1;5661;5654:12;5618:2;-1:-1;5699:4;5687:17;;;5752:15;;5555:222;6095:121;6182:12;;6153:63;6506:163;6609:19;;;6658:4;6649:14;;6602:67;6677:91;;6739:24;6757:5;6739:24;;6775:144;-1:-1;;;;;;6836:78;;6819:100;6926:72;6988:5;6971:27;7005:121;-1:-1;;;;;7067:54;;7050:76;7134:268;7199:1;7206:101;7220:6;7217:1;7214:13;7206:101;;;7287:11;;;7281:18;7268:11;;;7261:39;7242:2;7235:10;7206:101;;;7322:6;7319:1;7316:13;7313:2;;;7387:1;7378:6;7373:3;7369:16;7362:27;7313:2;7183:219;;;;;7571:97;7659:2;7639:14;-1:-1;;7635:28;;7619:49;7676:117;7745:24;7763:5;7745:24;;;7738:5;7735:35;7725:2;;7784:1;7781;7774:12;7725:2;7719:74;;7800:117;7869:24;7887:5;7869:24;;7843:74;1699:13600:27;;;;;;",
|
|
338
338
|
"deployedSourceMap": "1699:13600:27:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1699:13600:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1122:38:6;;;:::i;:::-;;;;;;;;;;;;;;;;5444:5266:27;;;;;;;;;:::i;:::-;;4731:707;;;;;;;;;:::i;:::-;;;;;;;;1906:35;;;:::i;:::-;;;;;;;;1684:137:125;;;:::i;3583:1142:27:-;;;;;;;;;:::i;1947:63::-;;;;;;;;;:::i;899:77:125:-;;;:::i;1250:92::-;;;:::i;:::-;;;;;;;;3061:516:27;;;;;;;;;:::i;1846:53::-;;;:::i;1970:107:125:-;;;;;;;;;:::i;1122:38:6:-;;;-1:-1:-1;;;;;1122:38:6;;:::o;5444:5266:27:-;5558:19;;:26;5532:192;;5588:2;5558:32;:65;;;;;5621:2;5594:6;:16;;;:23;:29;;5558:65;:102;;;;;5653:2;5627:6;:16;;;:23;:28;;;;;;:33;5558:102;5674:4;5532:192;:12;:192::i;:::-;5735:29;5767:35;5782:6;:19;;;5767:14;:35::i;:::-;5735:67;;5812:26;5841:32;5856:6;:16;;;5841:14;:32::i;:::-;5812:61;;5883:199;5928:9;5957:1;5938:9;:16;:20;5928:31;;;;;;;;;;;;;;-1:-1:-1;;;;;5909:50:27;:12;5922:1;5909:15;;;;;;;;;;;;;;-1:-1:-1;;;;;5909:50:27;;:107;;;;;6004:9;6014:1;6004:12;;;;;;;;;;;;;;-1:-1:-1;;;;;5963:53:27;:12;5998:1;5976:12;:19;:23;5963:37;;;;;;;;;;;;;;-1:-1:-1;;;;;5963:53:27;;5909:107;6030:4;5883:199;:12;:199::i;:::-;6131:27;;:::i;:::-;6208:20;;6250:171;;;;;;;;;-1:-1:-1;;;;;6208:20:27;;;6250:171;;;6208:20;6250:171;;;6348:58;6208:20;6393:12;6348:27;:58::i;:::-;6250:171;;;6242:179;;5444:5266;6479:21;6563:16;6581;6601:152;6652:5;:21;;;6691:12;6704:1;6691:15;;;;;;;;;;;;;;6724:12;6737:1;6724:15;;;;;;;;;;;;;;6601:33;:152::i;:::-;6562:191;;;;6768:11;6781:22;6807:175;6854:6;:22;;;6894:6;:22;;;6934:8;6960;6807:29;:175::i;:::-;6767:215;;;;6997:104;7027:6;7051:4;6997:104;:12;:104::i;:::-;7135:17;7116:36;;5444:5266;;;;7210:30;7266:5;:19;;;:26;7262:1;:30;7243:50;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7210:83;;7317:80;;;;;;;;7352:10;-1:-1:-1;;;;;7317:80:27;;;;;7385:1;7317:80;;;7303:8;7312:1;7303:11;;;;;;;;;;;;;:94;;;;7421:80;;;;;;;;7456:10;-1:-1:-1;;;;;7421:80:27;;;;;7489:1;7421:80;;;7407:8;7416:1;7407:11;;;;;;;;;;;;;;;;;:94;7517:6;7512:201;7533:5;:19;;;:26;7529:1;:30;7512:201;;;7598:104;;;;;;;;7637:5;:19;;;7657:1;7637:22;;;;;;;;;;;;;;-1:-1:-1;;;;;7598:104:27;;;;;7686:1;7598:104;;;7580:8;7593:1;7589;:5;7580:15;;;;;;;;;;;;;;;;;:122;7561:3;;7512:201;;;;7723:32;7758:41;7786:12;7758:27;:41::i;:::-;8012:18;;;;-1:-1:-1;;;;;7983:48:27;7848:18;7983:48;;;:28;:48;;;;;;7723:76;;-1:-1:-1;7848:18:27;8045:138;8075:31;;;8124:4;8045:138;:12;:138::i;:::-;8374:205;8440:6;:18;;;-1:-1:-1;;;;;8423:44:27;;:46;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8423:46:27;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8423:46:27;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8423:46:27;;;;;;;;;8487:17;8522:16;8556:9;8374:31;:205::i;:::-;8580:1;8374:208;;;;;;;;;;;;;;8358:224;;5444:5266;8746:35;8835:1;8813:12;:19;8809:1;:23;:27;8784:53;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;8746:91;;9162:19;9184:16;9162:38;;9227:326;9256:1;9275:18;9322:1;9294:18;:25;:29;9275:49;;;;;;;;;;;;;;9342:18;9361:1;9342:21;;;;;;;;;;;;;;9381:13;9412:6;:18;;;9448:6;:16;;;9482:14;9227:11;:326::i;:::-;9214:7;9222:1;9214:10;;;;;;;;;;;;;:339;;;;5444:5266;9611:32;9646:136;9695:5;:21;;;9730:16;9760:12;9646:35;:136::i;:::-;9611:171;;9792:146;9835:18;9882:1;9854:18;:25;:29;9835:49;;;;;;;;;;;;;;9818:13;:66;;9898:4;9792:146;:12;:146::i;:::-;9954:6;9949:541;9970:5;:19;;;:26;9966:1;:30;9949:541;;;10017:159;10072:5;:19;;;10092:1;10072:22;;;;;;;;;;;;;;-1:-1:-1;;;;;10047:47:27;:8;10056:1;10060;10056:5;10047:15;;;;;;;;;;;;;;:21;;;-1:-1:-1;;;;;10047:47:27;;10112:4;10017:159;:12;:159::i;:::-;10207:272;10237:1;10256;10260;10256:5;10279:18;10298:1;10279:21;;;;;;;;;;;;;;10318:18;10337:1;10341;10337:5;10318:25;;;;;;;;;;;;;;10361:5;:19;;;10381:1;10361:22;;;;;;;;;;;;;;10401:18;10420:1;10401:21;;;;;;;;;;;;;;10440:18;10459:1;10463;10459:5;10440:25;;;;;;;;;;;;;;10207:12;:272::i;:::-;10190:7;10198:1;10202;10198:5;10190:14;;;;;;;;;;;;;;;;;:289;9998:3;;9949:541;;;;10529:121;10561:1;10576;10591:18;10638:1;10610:18;:25;:29;10591:49;;;;;;;;;;;;;;10529:18;:121::i;:::-;10499:7;10524:1;10507:7;:14;:18;10499:27;;;;;;;;;;;;;;;;;:151;10661:15;;:42;;;;;-1:-1:-1;;;;;10661:15:27;;;;:23;;:42;;10685:8;;10695:7;;10661:42;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10661:42:27;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10661:42:27;;;;5444:5266;;;;;;;;;;:::o;4731:707::-;4922:7;;4959:20;4983:45;;;;4994:9;4983:45;;;4941:87;;;;;5038:21;5062:23;5077:7;5062:14;:23::i;:::-;5038:47;;5095:113;5132:10;-1:-1:-1;;;;;5121:21:27;:4;5126:1;5121:7;;;;;;;;;;;;;;-1:-1:-1;;;;;5121:21:27;;5156:4;5095:113;:12;:113::i;:::-;5218:130;5269:10;-1:-1:-1;;;;;5244:35:27;:4;5263:1;5249:4;:11;:15;5244:21;;;;;;;;;;;;;;-1:-1:-1;;;;;5244:35:27;;5293:4;5218:130;:12;:130::i;:::-;5366:62;;;;;-1:-1:-1;;;;;5366:37:27;;;;;:62;;5404:17;;5423:4;;5366:62;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5366:62:27;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5366:62:27;;;;;;39:16:-1;36:1;17:17;2:54;101:4;5366:62:27;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;5366:62:27;;;;;;;;;5429:1;5366:65;;;;;;;;;;;;;;5359:72;;;;;4731:707;;;;;;;:::o;1906:35::-;;;-1:-1:-1;;;;;1906:35:27;;:::o;1684:137:125:-;1103:9;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:125;;;;;;;;;;;;;;;;;1766:6;;1745:40;;1782:1;;-1:-1:-1;;;;;1766:6:125;;1745:40;;1782:1;;1745:40;1795:6;:19;;;;;;1684:137::o;3583:1142:27:-;3838:7;1493:15:6;;3813:10:27;;1451:151:6;;-1:-1:-1;;;;;1493:15:6;1477:32;;1523:4;1451:151;3813:10:27;1451:12:6;:151::i;:::-;3858:14:27;;3893:20;3917:45;;;;3928:9;3917:45;;;3857:105;;;;;;3972:21;3996:23;4011:7;3996:14;:23::i;:::-;3972:47;;4029:113;4066:10;-1:-1:-1;;;;;4055:21:27;:4;4060:1;4055:7;;;;;;;4029:113;4152:130;4203:10;-1:-1:-1;;;;;4178:35:27;:4;4197:1;4183:4;:11;:15;4178:21;;;;;;;4152:130;4293:66;4319:10;4331:6;4339:19;4293:25;:66::i;:::-;4394:192;;;;;4370:21;;-1:-1:-1;;;;;4394:49:27;;;;;:192;;4457:19;;4490:12;;4516:4;;4542;;4561:15;;4394:192;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4394:192:27;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4394:192:27;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4394:192:27;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;4394:192:27;;;;;;;;;4370:216;;4597:76;4623:10;4635:8;4645:7;4670:1;4653:7;:14;:18;4645:27;;;;;;;;;;;;;;4597:25;:76::i;:::-;4691:7;4716:1;4699:7;:14;:18;4691:27;;;;;;;;;;;;;;4684:34;;;;;;;3583:1142;;;;;;;;;;:::o;1947:63::-;;;;;;;;;;;;;:::o;899:77:125:-;963:6;;-1:-1:-1;;;;;963:6:125;899:77;:::o;1250:92::-;1329:6;;1290:4;;-1:-1:-1;;;;;1329:6:125;1313:12;:10;:12::i;:::-;-1:-1:-1;;;;;1313:22:125;;1306:29;;1250:92;:::o;3061:516:27:-;1103:9:125;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:125;;;;;;;;;3221:141:27;3247:39;;;3300:4;3221:141;:12;:141::i;:::-;3378:6;3373:198;3390:18;;;3373:198;;;3472:14;;3487:1;3472:17;;;;;;;;;;;;;3429:28;:40;3458:7;;3466:1;3458:10;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3429:40:27;;;;;;;;;;;;-1:-1:-1;3429:40:27;:60;3530:7;;3538:1;3530:10;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3508:52:27;;3542:14;;3557:1;3542:17;;;;;;;;;;;;;3508:52;;;;;;;;;;;;;;;3410:3;;3373:198;;;;3061:516;;;;:::o;1846:53::-;;;:::o;1970:107:125:-;1103:9;:7;:9::i;:::-;1095:54;;;;-1:-1:-1;;;1095:54:125;;;;;;;;;2042:28;2061:8;2042:18;:28::i;:::-;1970:107;:::o;1294:426:77:-;1428:4;1423:291;;1542:24;1561:4;1542:18;:24::i;:::-;1592:5;1623:26;1642:6;1623:18;:26::i;:::-;1500:171;;;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;1500:171:77;;;;-1:-1:-1;;;1448:255:77;;;;;;;;1423:291;1294:426;;;:::o;11599:665:27:-;11682:16;11710:137;11753:2;11736:7;:14;:19;;;;;;:24;:48;;;;;11782:2;11764:7;:14;:20;;11736:48;11798:4;11710:137;:12;:137::i;:::-;11857:21;11912:2;11895:7;:14;:19;;;;;;11881:34;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;11881:34:27;-1:-1:-1;11857:58:27;-1:-1:-1;11930:6:27;11925:312;11946:4;:11;11942:1;:15;11925:312;;;11992:2;:6;;12145:29;;;12162:2;12145:29;12139:36;12202:7;;12212:14;;;;;12202:4;;11997:1;;12202:7;;;;;;-1:-1:-1;;;;;12202:24:27;;;:7;;;;;;;;;;;:24;-1:-1:-1;;11959:3:27;;11925:312;;;-1:-1:-1;12253:4:27;-1:-1:-1;11599:665:27;;;;:::o;1219:189:19:-;1322:16;1357:44;1366:7;1034:66;1396:4;1357:8;:44::i;:::-;1350:51;;1219:189;;;;;:::o;3495:298::-;3621:13;;3668:118;3696:7;1034:66;3750:6;3770;3668:14;:118::i;:::-;3661:125;;;;3495:298;;;;;;:::o;10769:824:27:-;10979:11;;11079:15;11033:43;11067:8;11033:29;:8;11046:15;11033:29;:12;:29;:::i;:::-;:33;:43;:33;:43;:::i;:::-;:61;;-1:-1:-1;11105:17:27;11125:22;:8;11138;11125:22;:12;:22;:::i;:::-;11105:42;;11158:16;11177:181;11288:60;11344:3;11296:6;:42;;11323:15;11296:42;;;11305:15;11296:42;11288:55;:60;:55;:60;:::i;:::-;11206:67;11268:4;11206:57;11220:6;:42;;11247:15;11220:42;;;11229:15;11220:42;11206:9;;:57;:13;:57;:::i;:67::-;:142;;;;;;11177:15;:181::i;:::-;11158:200;;11368:17;11441:3;11389:6;:48;;11419:18;:8;11432:4;11419:18;:12;:18;:::i;:::-;11389:48;;;11398:18;:8;11411:4;11398:18;:12;:18;:::i;:::-;11388:56;;;;;;;-1:-1:-1;11563:23:27;:8;11388:56;11563:23;:12;:23;:::i;:::-;11552:34;;10769:824;;;;;;;;;;:::o;14894:402::-;15016:30;15049:15;15112:11;;15101:23;;;;;;;;;;;;;;;;14991:13;;-1:-1:-1;;;;;15049:15:27;;14991:13;;15101:23;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;15101:23:27;-1:-1:-1;15074:50:27;-1:-1:-1;15139:6:27;15134:129;15155:4;:11;15151:1;:15;15134:129;;;15203:14;-1:-1:-1;;;;;15203:40:27;;15244:4;15249:1;15244:7;;;;;;;;;;;;;;15203:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15203:49:27;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15203:49:27;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15203:49:27;;;;;;;;;15187:10;15198:1;15187:13;;;;;;;;;;;;;;;;;:65;15168:3;;15134:129;;;-1:-1:-1;15279:10:27;14894:402;-1:-1:-1;;;14894:402:27:o;9013:715:19:-;9174:21;9207:98;9248:1;9233:4;:11;:16;;9263:4;9207:98;:12;:98::i;:::-;9336:4;:11;9325:23;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;9325:23:19;;9315:33;;9388:9;9358:7;9383:1;9366:7;:14;:18;9358:27;;;;;;;;;;;;;;;;;:39;9421:11;;-1:-1:-1;;9421:15:19;9407:315;9438:5;;9407:315;;9465:14;9481:15;9500:134;9529:7;9554:12;9584:4;9593:1;9589;:5;9584:11;;;;;;;;;;;;;;9613:4;9618:1;9613:7;;;;;;;;;;;;;;9500:11;:134::i;:::-;9464:170;;;;9665:46;9677:7;9685:1;9677:10;;;;;;;;;;;;;;9689:9;9700:10;9665:11;:46::i;:::-;9648:7;9660:1;9656;:5;9648:14;;;;;;;;;;;;;;;;;:63;-1:-1:-1;;;;9445:3:19;9407:315;;;;9013:715;;;;;;:::o;12543:829:27:-;12790:25;;:::i;:::-;12834:531;;;;;;;;12880:23;12834:531;;;;;;;;;13021:94;;;;;;;-1:-1:-1;13021:94:27;;;12834:531;;;;;13021:94;;;;;;;;;13075:26;13021:94;;;;13103:11;13021:94;;;12834:531;;;;13147:15;12834:531;;;;13196:17;12834:531;;;;13250:4;-1:-1:-1;;;;;12834:531:27;;;;;-1:-1:-1;;12834:531:27;;;;13327:6;13335:12;13349:4;13316:38;;;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;13316:38:27;;;12834:531;;12827:538;12543:829;-1:-1:-1;;;;;;;;12543:829:27:o;6923:578:19:-;7057:21;7090:98;7131:1;7116:4;:11;:16;;7146:4;7090:98;:12;:98::i;:::-;7219:4;:11;7208:23;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;7208:23:19;;7198:33;;7254:8;7241:7;7249:1;7241:10;;;;;;;;;;;;;:21;;;;;7277:6;7272:223;7303:1;7289:4;:11;:15;7285:1;:19;7272:223;;;7326:14;7342:15;7361:45;7376:7;7385:4;7390:1;7385:7;;;;;;;;;;;;;;7394:4;7399:1;7403;7399:5;7394:11;;;;;;;7361:45;7325:81;;;;7437:47;7450:7;7458:1;7450:10;;;;;;;;;;;;;;7462:9;7473:10;7437:12;:47::i;:::-;7420:7;7428:1;7432;7428:5;7420:14;;;;;;;;;;;;;;;;;:64;-1:-1:-1;;7306:3:19;;7272:223;;13378:830:27;13635:25;;:::i;:::-;13679:522;;;;;;;;;;13725:24;13679:522;;;;;;;;;;13867:93;;;;;;;13885:4;13867:93;;13679:522;;;13867:93;;;-1:-1:-1;13867:93:27;;;;13920:26;13867:93;;;;13948:11;13867:93;;;13679:522;;;;13992:15;13679:522;;;;14041:17;13679:522;;;;14087:13;-1:-1:-1;;;;;13679:522:27;;;;;14131:14;13679:522;;;;14177:12;14166:24;;;;;;;;;14214:674;14354:25;;:::i;:::-;14398:483;;;;;;;;;;14444:27;14398:483;;;;;;;;;;14589:84;;;;;;;14607:4;14589:84;;14398:483;;;14589:84;;;-1:-1:-1;14589:84:27;;;;14642:27;14589:84;;;;14671:1;14589:84;;;14398:483;;;;14705:8;14398:483;;;;-1:-1:-1;;14398:483:27;;;;14793:1;-1:-1:-1;;;;;14398:483:27;;;;;14826:14;14398:483;;;;14861:9;;;;;;;;;;;;14398:483;;;14391:490;;14214:674;;;;;;:::o;2962:561:77:-;3122:4;3117:400;;3236:24;3255:4;3236:18;:24::i;:::-;3286:5;3317:26;3336:6;3317:18;:26::i;:::-;3369:6;3401:19;3411:8;3401:9;:19::i;:::-;3194:280;;;;;;;;;3446:6;;3194:280;;;;3117:400;2962:561;;;;:::o;12270:267:27:-;12403:47;;;;;12453:6;;-1:-1:-1;;;;;12403:23:27;;;;;:47;;12435:4;;12442:7;;12403:47;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12403:47:27;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12403:47:27;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12403:47:27;;;;;;;;;:56;12399:132;;;12475:45;-1:-1:-1;;;;;12475:25:27;;12501:7;-1:-1:-1;;12475:45:27;:25;:45;:::i;788:96:122:-;867:10;788:96;:::o;2178:225:125:-;-1:-1:-1;;;;;2251:22:125;;2243:73;;;;-1:-1:-1;;;2243:73:125;;;;;;;;;2352:6;;2331:38;;-1:-1:-1;;;;;2331:38:125;;;;2352:6;;2331:38;;2352:6;;2331:38;2379:6;:17;;;;-1:-1:-1;;;;;2379:17:125;;;;;;;;;;2178:225::o;6359:966:77:-;6462:12;6537:19;6576:5;6559:23;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;6559:23:77;;;;-1:-1:-1;49:4;6688:571:77;6709:5;;6688:571;;6960:9;;-1:-1:-1;;6862:3:77;;;;6960:6;;6862:3;;6960:9;;;;;;;;;;;;:14;6956:293;;7015:1;7011:5;7141:22;;7148:6;-1:-1:-1;7221:13:77;;6956:293;6688:571;;;-1:-1:-1;;7306:12:77;;;7316:1;7306:12;;;;;;;;;7299:19;-1:-1:-1;;6359:966:77:o;1414:579:19:-;1547:16;1575:105;1616:1;1601:4;:11;:16;;1631:4;1575:105;:12;:105::i;:::-;1691:22;1744:1;1730:4;:11;:15;1716:30;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;1716:30:19;-1:-1:-1;1691:55:19;-1:-1:-1;1761:6:19;1756:209;1791:1;1777:4;:11;:15;1773:1;:19;1756:209;;;1824:130;1849:7;1874:4;1879:1;1874:7;;;;;;;;;;;;;;1899:4;1904:1;1908;1904:5;1899:11;;;;;;;;;;;;;;1928:12;1824:7;:130::i;:::-;1813:5;1819:1;1813:8;;;;;;;;-1:-1:-1;;;;;1813:141:19;;;:8;;;;;;;;;;;:141;1794:3;;1756:209;;4366:569;4522:13;4537;4563:14;4582:26;4593:6;4601;4582:10;:26::i;:::-;4562:46;;;4619:13;4634;4682:124;4707:7;4732:6;4756;4780:12;4682:7;:124::i;:::-;-1:-1:-1;;;;;4652:179:19;;:181;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4652:181:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4652:181:19;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4652:181:19;;;;;;;;;4618:215;;;;;;;;;4876:6;-1:-1:-1;;;;;4866:16:19;:6;-1:-1:-1;;;;;4866:16:19;;:62;;4909:8;4919;4866:62;;;4886:8;4896;4866:62;4843:85;;;;-1:-1:-1;4366:569:19;-1:-1:-1;;;;;;;;4366:569:19:o;2159:459:124:-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:124;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;-1:-1:-1;;;2536:56:124;;;;;;;;3073:130;3131:7;3157:39;3161:1;3164;3157:39;;;;;;;;;;;;;;;;;:3;:39::i;382:1197:130:-;430:7;453:6;449:20;;-1:-1:-1;468:1:130;461:8;;449:20;644:1;667;688:35;682:41;;678:104;;746:3;739:10;;;;;769:2;763:8;678:104;801:19;795:2;:25;791:87;;843:2;836:9;;;;;865:2;859:8;791:87;897:11;891:2;:17;887:79;;931:2;924:9;;;;;953:2;947:8;887:79;985:7;979:2;:13;975:74;;1015:2;1008:9;;;;;1037:1;1031:7;975:74;1068:5;1062:2;:11;1058:71;;1096:1;1089:8;;;;;1117:1;1111:7;1058:71;1148:4;1142:2;:10;1138:70;;1175:1;1168:8;;;;;1196:1;1190:7;1138:70;1227:3;1221:2;:9;1217:47;;1252:1;1246:7;1217:47;1292:1;1286;1282;:5;;;;;;1278:1;:9;1277:16;;1273:20;;1322:1;1316;1312;:5;;;;;;1308:1;:9;1307:16;;1303:20;;1352:1;1346;1342;:5;;;;;;1338:1;:9;1337:16;;1333:20;;1382:1;1376;1372;:5;;;;;;1368:1;:9;1367:16;;1363:20;;1412:1;1406;1402;:5;;;;;;1398:1;:9;1397:16;;1393:20;;1442:1;1436;1432;:5;;;;;;1428:1;:9;1427:16;;1423:20;;1472:1;1466;1462;:5;;;;;;1458:1;:9;1457:16;;1453:20;;1520:10;1537:1;1533;:5;;;;;;1520:18;;1560:2;1556:1;:6;:15;;1569:2;1556:15;;;1565:1;1556:15;1548:24;382:1197;-1:-1:-1;;;;;382:1197:130:o;1274:134:124:-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;3799:561:19:-;3952:13;3967;3993:14;4012:26;4023:6;4031;4012:10;:26::i;:::-;3992:46;;;4049:13;4064;4110:124;4135:7;4160:6;4184;4208:12;4110:7;:124::i;:::-;-1:-1:-1;;;;;4082:174:19;;:176;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;6265:579:19;6358:13;6383:109;6421:1;6409:9;:13;6436:4;6383:109;:12;:109::i;:::-;6502:123;6540:1;6528:9;:13;:31;;;;;6558:1;6545:10;:14;6528:31;6573:4;6502:123;:12;:123::i;:::-;6635:14;6652:34;6681:4;6652:24;:9;6666;6652:24;:13;:24;:::i;:34::-;6635:51;-1:-1:-1;6696:16:19;6715:34;6745:3;6715:25;:10;6730:9;6715:25;:14;:25;:::i;:34::-;6696:53;-1:-1:-1;6804:33:19;6835:1;6804:26;:9;6696:53;6804:26;:13;:26;:::i;:::-;:30;:33;:30;:33;:::i;:::-;6793:44;6265:579;-1:-1:-1;;;;;;6265:579:19:o;5559:588::-;5652:14;5678:107;5715:1;5704:8;:12;5730:4;5678:107;:12;:107::i;:::-;5795:123;5833:1;5821:9;:13;:31;;;;;5851:1;5838:10;:14;5866:4;5795:123;:12;:123::i;:::-;5928:20;5951:17;:8;5964:3;5951:17;:12;:17;:::i;:::-;5928:40;-1:-1:-1;5978:14:19;5995:31;5928:40;6015:10;5995:31;:19;:31;:::i;:::-;5978:48;-1:-1:-1;6036:16:19;6055:40;6079:15;6055:19;:9;6069:4;6055:19;:13;:19;:::i;:40::-;6036:59;;6129:11;6117:9;:23;;;;;;;5559:588;-1:-1:-1;;;;;;;5559:588:19:o;8249:962:77:-;8521:13;;;8531:2;8521:13;;;8343:12;8521:13;;;;;;-1:-1:-1;;;;;8383:14:77;;;8343:12;;8521:13;;;21:6:-1;;104:10;8521:13:77;87:34:-1;135:17;;-1:-1;8521:13:77;8499:35;;902:2;8598:23;;8586:6;8593:1;8586:9;;;;;;;;;;;:35;;;;;;;;;;;1010:3;8643:27;;8631:6;8638:1;8631:9;;;;;;;;;;;:39;;;;;;;;;;-1:-1:-1;8784:9:77;8779:402;8803:2;8799:1;:6;8779:402;;;8892:1;8888:5;;8985:23;1232:3;8990:17;;8985:4;:23::i;:::-;8964:6;8976:5;8971:2;:10;8964:18;;;;;;;;;;;:44;;;;;;;;;;;9031:1;9026;:6;;9022:10;;9123:23;1232:3;9128:1;:17;9123:4;:23::i;:::-;9102:6;9114:5;9109:2;:10;9102:18;;;;;;;;;;;:44;;;;;;;;;;-1:-1:-1;;9169:1:77;9164:6;;;;;8807:3;;8779:402;;1050:612:127;1415:10;;;1414:62;;-1:-1:-1;1431:39:127;;;;;-1:-1:-1;;;;;1431:15:127;;;;;:39;;1455:4;;1462:7;;1431:39;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1431:39:127;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1431:39:127;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1431:39:127;;;;;;;;;:44;1414:62;1406:150;;;;-1:-1:-1;;;1406:150:127;;;;;;;;;1592:62;;1566:89;;1585:5;;1615:22;;1592:62;;1639:7;;1648:5;;1592:62;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;1592:62:127;;;49:4:-1;25:18;;61:17;;1592:62:127;182:15:-1;1592:62:127;;;;179:29:-1;;;;160:49;;;1566:18:127;:89::i;2855:585:19:-;3004:12;3029:14;3045;3063:26;3074:6;3082;3063:10;:26::i;:::-;3028:61;;;;3255:7;3315:6;3323;3298:32;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3298:32:19;;;3288:43;;;;;;3357:12;3180:211;;;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;3180:211:19;;;3149:260;;49:4:-1;3149:260:19;;;;;2855:585;-1:-1:-1;;;;;;;2855:585:19:o;2099:423::-;2174:14;2190;2216:105;2252:6;-1:-1:-1;;;;;2242:16:19;:6;-1:-1:-1;;;;;2242:16:19;;;2272:4;2216:105;:12;:105::i;:::-;2359:6;-1:-1:-1;;;;;2350:15:19;:6;-1:-1:-1;;;;;2350:15:19;;:53;;2388:6;2396;2350:53;;;2369:6;2377;2350:53;2331:72;;-1:-1:-1;2331:72:19;-1:-1:-1;2413:102:19;-1:-1:-1;;;;;2439:20:19;;;;2473:4;2413:102;:12;:102::i;:::-;2099:423;;;;;:::o;3718:338:124:-;3804:7;3904:12;3897:5;3889:28;;;;-1:-1:-1;;;3889:28:124;;;;;;;;;;;3927:9;3943:1;3939;:5;;;;;;;3718:338;-1:-1:-1;;;;;3718:338:124:o;1732:187::-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:124;;;;;;;;;;-1:-1:-1;;;1888:5:124;;;1732:187::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;-1:-1:-1;;;938:46:124;;;;;;;;10183:325:77;10272:4;10340:2;10332:5;:10;10328:79;;;-1:-1:-1;902:2:77;10376:18;;10365:31;;10358:38;;10328:79;-1:-1:-1;956:2:77;10472:27;10461:40;;;10183:325::o;2666:1095:127:-;3261:27;3269:5;-1:-1:-1;;;;;3261:25:127;;:27::i;:::-;3253:71;;;;-1:-1:-1;;;3253:71:127;;;;;;;;;3395:12;3409:23;3444:5;-1:-1:-1;;;;;3436:19:127;3456:4;3436:25;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;3394:67:127;;;;3479:7;3471:52;;;;-1:-1:-1;;;3471:52:127;;;;;;;;;3538:17;;:21;3534:221;;3678:10;3667:30;;;;;;;;;;;;;;3659:85;;;;-1:-1:-1;;;3659:85:127;;;;;;;;686:610:128;746:4;1207:20;;1052:66;1246:23;;;;;;:42;;-1:-1:-1;1273:15:128;;;1246:42;1238:51;686:610;-1:-1:-1;;;;686:610:128:o;1699:13600:27:-;;;;;;;;;;-1:-1:-1;1699:13600:27;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;1699:13600:27;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1699:13600:27;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1699:13600:27;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;1699:13600:27;;;;;;;;;;;;;;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;142:134;220:13;;238:33;220:13;238:33;;454:352;;;584:3;577:4;569:6;565:17;561:27;551:2;;602:1;599;592:12;551:2;-1:-1;622:20;;662:18;651:30;;648:2;;;694:1;691;684:12;648:2;728:4;720:6;716:17;704:29;;779:3;771:4;763:6;759:17;749:8;745:32;742:41;739:2;;;796:1;793;786:12;1210:722;;1338:3;1331:4;1323:6;1319:17;1315:27;1305:2;;1356:1;1353;1346:12;1305:2;1386:6;1380:13;1408:80;1423:64;1480:6;1423:64;;;1408:80;;;1399:89;;1505:5;1530:6;1523:5;1516:21;1560:4;1552:6;1548:17;1538:27;;1582:4;1577:3;1573:14;1566:21;;1635:6;1682:3;1674:4;1666:6;1662:17;1657:3;1653:27;1650:36;1647:2;;;1699:1;1696;1689:12;1647:2;1724:1;1709:217;1734:6;1731:1;1728:13;1709:217;;;1792:3;1814:48;1858:3;1846:10;1814:48;;;1802:61;;-1:-1;1886:4;1877:14;;;;1905;;;;;1756:1;1749:9;1709:217;;;1713:14;1298:634;;;;;;;;1940:128;2015:13;;2033:30;2015:13;2033:30;;2089:336;;;2203:3;2196:4;2188:6;2184:17;2180:27;2170:2;;2221:1;2218;2211:12;2170:2;-1:-1;2241:20;;2281:18;2270:30;;2267:2;;;2313:1;2310;2303:12;2267:2;2347:4;2339:6;2335:17;2323:29;;2398:3;2390:4;2382:6;2378:17;2368:8;2364:32;2361:41;2358:2;;;2415:1;2412;2405:12;2434:432;;2531:3;2524:4;2516:6;2512:17;2508:27;2498:2;;2549:1;2546;2539:12;2498:2;2586:6;2573:20;2608:60;2623:44;2660:6;2623:44;;2608:60;2599:69;;2688:6;2681:5;2674:21;2724:4;2716:6;2712:17;2757:4;2750:5;2746:16;2792:3;2783:6;2778:3;2774:16;2771:25;2768:2;;;2809:1;2806;2799:12;2768:2;2819:41;2853:6;2848:3;2843;2819:41;;;2491:375;;;;;;;;2924:1132;;3046:4;3034:9;3029:3;3025:19;3021:30;3018:2;;;3064:1;3061;3054:12;3018:2;3082:20;3097:4;3082:20;;;3073:29;-1:-1;3160:31;;3211:18;3200:30;;3197:2;;;3243:1;3240;3233:12;3197:2;3278:54;3328:3;3319:6;3308:9;3304:22;3278:54;;;3253:80;;-1:-1;3405:2;3438:49;3483:3;3459:22;;;3438:49;;;3431:4;3424:5;3420:16;3413:75;3354:145;3560:2;3593:49;3638:3;3629:6;3618:9;3614:22;3593:49;;;3586:4;3579:5;3575:16;3568:75;3509:145;3711:2;3744:49;3789:3;3780:6;3769:9;3765:22;3744:49;;;3737:4;3730:5;3726:16;3719:75;3664:141;3888:3;3877:9;3873:19;3860:33;3913:18;3905:6;3902:30;3899:2;;;3945:1;3942;3935:12;3899:2;3980:54;4030:3;4021:6;4010:9;4006:22;3980:54;;;3973:4;3966:5;3962:16;3955:80;3815:231;3012:1044;;;;;4063:134;4141:13;;4159:33;4141:13;4159:33;;4204:130;4271:20;;4296:33;4271:20;4296:33;;4341:134;4419:13;;4437:33;4419:13;4437:33;;4482:132;4559:13;;4577:32;4559:13;4577:32;;4621:241;;4725:2;4713:9;4704:7;4700:23;4696:32;4693:2;;;4741:1;4738;4731:12;4693:2;4776:1;4793:53;4838:7;4818:9;4793:53;;4869:263;;4984:2;4972:9;4963:7;4959:23;4955:32;4952:2;;;5000:1;4997;4990:12;4952:2;5035:1;5052:64;5108:7;5088:9;5052:64;;5139:603;;;;5290:2;5278:9;5269:7;5265:23;5261:32;5258:2;;;5306:1;5303;5296:12;5258:2;5341:1;5358:61;5411:7;5391:9;5358:61;;;5348:71;;5320:105;5456:2;5474:53;5519:7;5510:6;5499:9;5495:22;5474:53;;;5464:63;;5435:98;5592:2;5581:9;5577:18;5564:32;5616:18;5608:6;5605:30;5602:2;;;5648:1;5645;5638:12;5602:2;5668:58;5718:7;5709:6;5698:9;5694:22;5668:58;;;5658:68;;5543:189;5252:490;;;;;;5749:993;;;;;;;;5957:3;5945:9;5936:7;5932:23;5928:33;5925:2;;;5974:1;5971;5964:12;5925:2;6009:1;6026:53;6071:7;6051:9;6026:53;;;6016:63;;5988:97;6116:2;6134:53;6179:7;6170:6;6159:9;6155:22;6134:53;;;6124:63;;6095:98;6224:2;6242:53;6287:7;6278:6;6267:9;6263:22;6242:53;;;6232:63;;6203:98;6332:2;6350:53;6395:7;6386:6;6375:9;6371:22;6350:53;;;6340:63;;6311:98;6440:3;6459:53;6504:7;6495:6;6484:9;6480:22;6459:53;;;6449:63;;6419:99;6577:3;6566:9;6562:19;6549:33;6602:18;6594:6;6591:30;6588:2;;;6634:1;6631;6624:12;6588:2;6662:64;6718:7;6709:6;6698:9;6694:22;6662:64;;;6652:74;;;;6528:204;5919:823;;;;;;;;;;;6749:741;;;;;;6923:3;6911:9;6902:7;6898:23;6894:33;6891:2;;;6940:1;6937;6930:12;6891:2;6975:1;6992:53;7037:7;7017:9;6992:53;;;6982:63;;6954:97;7082:2;7100:53;7145:7;7136:6;7125:9;7121:22;7100:53;;;7090:63;;7061:98;7190:2;7208:53;7253:7;7244:6;7233:9;7229:22;7208:53;;;7198:63;;7169:98;7326:2;7315:9;7311:18;7298:32;7350:18;7342:6;7339:30;7336:2;;;7382:1;7379;7372:12;7336:2;7410:64;7466:7;7457:6;7446:9;7442:22;7410:64;;;7400:74;;;;7277:203;6885:605;;;;;;;;;7497:678;;;;;7688:2;7676:9;7667:7;7663:23;7659:32;7656:2;;;7704:1;7701;7694:12;7656:2;7739:31;;7790:18;7779:30;;7776:2;;;7822:1;7819;7812:12;7776:2;7850:80;7922:7;7913:6;7902:9;7898:22;7850:80;;;7840:90;;;;7718:218;7995:2;7984:9;7980:18;7967:32;8019:18;8011:6;8008:30;8005:2;;;8051:1;8048;8041:12;8005:2;8079:80;8151:7;8142:6;8131:9;8127:22;8079:80;;;7650:525;;;;-1:-1;8069:90;-1:-1;;;;7650:525;8182:392;;8322:2;8310:9;8301:7;8297:23;8293:32;8290:2;;;8338:1;8335;8328:12;8290:2;8373:24;;8417:18;8406:30;;8403:2;;;8449:1;8446;8439:12;8403:2;8469:89;8550:7;8541:6;8530:9;8526:22;8469:89;;8581:257;;8693:2;8681:9;8672:7;8668:23;8664:32;8661:2;;;8709:1;8706;8699:12;8661:2;8744:1;8761:61;8814:7;8794:9;8761:61;;8845:393;;8982:2;8970:9;8961:7;8957:23;8953:32;8950:2;;;8998:1;8995;8988:12;8950:2;9033:31;;9084:18;9073:30;;9070:2;;;9116:1;9113;9106:12;9070:2;9136:86;9214:7;9205:6;9194:9;9190:22;9136:86;;9245:533;;;;9393:2;9381:9;9372:7;9368:23;9364:32;9361:2;;;9409:1;9406;9399:12;9361:2;9444:1;9461:64;9517:7;9497:9;9461:64;;;9451:74;;9423:108;9562:2;9580:64;9636:7;9627:6;9616:9;9612:22;9580:64;;;9570:74;;9541:109;9681:2;9699:63;9754:7;9745:6;9734:9;9730:22;9699:63;;9785:263;;9900:2;9888:9;9879:7;9875:23;9871:32;9868:2;;;9916:1;9913;9906:12;9868:2;9951:1;9968:64;10024:7;10004:9;9968:64;;10056:173;;10143:46;10185:3;10177:6;10143:46;;;-1:-1;;10218:4;10209:14;;10136:93;10238:257;;10389:100;10485:3;10477:6;10389:100;;10504:253;;10629:88;10713:3;10705:6;10629:88;;;-1:-1;;10746:4;10737:14;;10622:135;10765:103;10838:24;10856:5;10838:24;;;10833:3;10826:37;10820:48;;;10995:152;11096:45;11116:24;11134:5;11116:24;;;11096:45;;11185:690;;11330:54;11378:5;11330:54;;;11397:86;11476:6;11471:3;11397:86;;;11390:93;;11504:56;11554:5;11504:56;;;11580:7;11608:1;11593:260;11618:6;11615:1;11612:13;11593:260;;;11685:6;11679:13;11706:63;11765:3;11750:13;11706:63;;;11699:70;;11786:60;11839:6;11786:60;;;11776:70;-1:-1;;11640:1;11633:9;11593:260;;;-1:-1;11866:3;;11309:566;-1:-1;;;;;11309:566;11950:1048;;12145:79;12218:5;12145:79;;;12237:111;12341:6;12336:3;12237:111;;;12230:118;;12371:3;12413:4;12405:6;12401:17;12396:3;12392:27;12440:81;12515:5;12440:81;;;12541:7;12569:1;12554:405;12579:6;12576:1;12573:13;12554:405;;;12641:9;12635:4;12631:20;12626:3;12619:33;12686:6;12680:13;12708:114;12817:4;12802:13;12708:114;;;12700:122;;12839:85;12917:6;12839:85;;;12947:4;12938:14;;;;;12829:95;-1:-1;;12601:1;12594:9;12554:405;;;-1:-1;12972:4;;12124:874;-1:-1;;;;;;;12124:874;13061:842;;13244:73;13311:5;13244:73;;;13330:105;13428:6;13423:3;13330:105;;;13323:112;;13456:75;13525:5;13456:75;;;13551:7;13579:1;13564:317;13589:6;13586:1;13583:13;13564:317;;;13656:6;13650:13;13677:101;13774:3;13759:13;13677:101;;;13670:108;;13795:79;13867:6;13795:79;;;13785:89;-1:-1;;13611:1;13604:9;13564:317;;13911:94;13978:21;13993:5;13978:21;;14123:148;14222:43;14241:23;14258:5;14241:23;;;14222:43;;14278:148;14377:43;14396:23;14413:5;14396:23;;14433:113;14516:24;14534:5;14516:24;;14553:152;14654:45;14674:24;14692:5;14674:24;;14712:343;;14822:38;14854:5;14822:38;;;14872:70;14935:6;14930:3;14872:70;;;14865:77;;14947:52;14992:6;14987:3;14980:4;14973:5;14969:16;14947:52;;;15020:29;15042:6;15020:29;;;15011:39;;;;14802:253;-1:-1;;;14802:253;15062:356;;15190:38;15222:5;15190:38;;;15240:88;15321:6;15316:3;15240:88;;;15233:95;;15333:52;15378:6;15373:3;15366:4;15359:5;15355:16;15333:52;;;15397:16;;;;;15170:248;-1:-1;;15170:248;15747:176;15855:62;15911:5;15855:62;;15930:144;16017:51;16062:5;16017:51;;16081:158;16175:58;16227:5;16175:58;;16760:375;;16920:67;16984:2;16979:3;16920:67;;;17020:34;17000:55;;17089:8;17084:2;17075:12;;17068:30;17126:2;17117:12;;16906:229;-1:-1;;16906:229;17144:327;;17304:67;17368:2;17363:3;17304:67;;;17404:29;17384:50;;17462:2;17453:12;;17290:181;-1:-1;;17290:181;17480:332;;17640:67;17704:2;17699:3;17640:67;;;17740:34;17720:55;;17803:2;17794:12;;17626:186;-1:-1;;17626:186;17821:398;;17999:84;18081:1;18076:3;17999:84;;;18116:66;18096:87;;18211:1;18202:11;;17985:234;-1:-1;;17985:234;18228:370;;18388:67;18452:2;18447:3;18388:67;;;18488:34;18468:55;;18557:3;18552:2;18543:12;;18536:25;18589:2;18580:12;;18374:224;-1:-1;;18374:224;18607:332;;18767:67;18831:2;18826:3;18767:67;;;18867:34;18847:55;;18930:2;18921:12;;18753:186;-1:-1;;18753:186;18948:379;;19108:67;19172:2;19167:3;19108:67;;;19208:34;19188:55;;19277:12;19272:2;19263:12;;19256:34;19318:2;19309:12;;19094:233;-1:-1;;19094:233;19336:391;;19496:67;19560:2;19555:3;19496:67;;;19596:34;19576:55;;19665:24;19660:2;19651:12;;19644:46;19718:2;19709:12;;19482:245;-1:-1;;19482:245;19736:331;;19896:67;19960:2;19955:3;19896:67;;;19996:33;19976:54;;20058:2;20049:12;;19882:185;-1:-1;;19882:185;20136:1616;20355:23;;20136:1616;;20281:6;20272:16;;;20384:77;20276:3;20355:23;20384:77;;;20303:164;20545:4;20538:5;20534:16;20528:23;20557:63;20614:4;20609:3;20605:14;20591:12;20557:63;;;20477:149;20701:4;20694:5;20690:16;20684:23;20713:119;20826:4;20821:3;20817:14;20803:12;20713:119;;;20636:202;20922:4;20915:5;20911:16;20905:23;20934:63;20991:4;20986:3;20982:14;20968:12;20934:63;;;20848:155;21089:4;21082:5;21078:16;21072:23;21101:63;21158:4;21153:3;21149:14;21135:12;21101:63;;;21013:157;21251:4;21244:5;21240:16;21234:23;21263:65;21320:6;21315:3;21311:16;21297:12;21263:65;;;21180:154;21417:4;21410:5;21406:16;21400:23;21429:65;21486:6;21481:3;21477:16;21463:12;21429:65;;;21344:156;21573:4;21566:5;21562:16;21556:23;21627:3;21621:4;21617:14;21608:6;21603:3;21599:16;21592:40;21647:67;21709:4;21695:12;21647:67;;21818:821;22023:23;;21957:4;21948:14;;;22052:57;21952:3;22023:23;22052:57;;;21977:138;22196:4;22189:5;22185:16;22179:23;22208:84;22286:4;22281:3;22277:14;22263:12;22208:84;;;22125:173;22370:4;22363:5;22359:16;22353:23;22382:81;22457:4;22452:3;22448:14;22434:12;22382:81;;;22308:161;22543:4;22536:5;22532:16;22526:23;22555:63;22612:4;22607:3;22603:14;22589:12;22555:63;;22695:461;22887:23;;22820:4;22811:14;;;22916:63;22815:3;22887:23;22916:63;;;22840:145;23060:4;23053:5;23049:16;23043:23;23072:63;23129:4;23124:3;23120:14;23106:12;23072:63;;23393:383;;23540:75;23611:3;23602:6;23540:75;;;23637:2;23632:3;23628:12;23621:19;;23651:75;23722:3;23713:6;23651:75;;;-1:-1;23748:2;23739:12;;23528:248;-1:-1;;23528:248;23783:244;;23902:75;23973:3;23964:6;23902:75;;;-1:-1;23999:2;23990:12;;23890:137;-1:-1;23890:137;24034:262;;24178:93;24267:3;24258:6;24178:93;;24303:553;;24519:93;24608:3;24599:6;24519:93;;;24512:100;;24623:73;24692:3;24683:6;24623:73;;;24718:1;24713:3;24709:11;24702:18;;24738:93;24827:3;24818:6;24738:93;;24863:978;;25177:93;25266:3;25257:6;25177:93;;;25170:100;;25281:73;25350:3;25341:6;25281:73;;;25376:1;25371:3;25367:11;25360:18;;25396:93;25485:3;25476:6;25396:93;;;25389:100;;25500:73;25569:3;25560:6;25500:73;;;25595:1;25590:3;25586:11;25579:18;;25615:93;25704:3;25695:6;25615:93;;;25608:100;;25719:73;25788:3;25779:6;25719:73;;;-1:-1;25814:1;25805:11;;25158:683;-1:-1;;;;;;25158:683;25848:789;;26131:148;26275:3;26131:148;;;26124:155;;26290:75;26361:3;26352:6;26290:75;;;26387:2;26382:3;26378:12;26371:19;;26401:75;26472:3;26463:6;26401:75;;;26498:2;26493:3;26489:12;26482:19;;26512:75;26583:3;26574:6;26512:75;;;-1:-1;26609:2;26600:12;;26112:525;-1:-1;;;26112:525;26644:213;26762:2;26747:18;;26776:71;26751:9;26820:6;26776:71;;26864:324;27010:2;26995:18;;27024:71;26999:9;27068:6;27024:71;;;27106:72;27174:2;27163:9;27159:18;27150:6;27106:72;;27195:324;27341:2;27326:18;;27355:71;27330:9;27399:6;27355:71;;;27437:72;27505:2;27494:9;27490:18;27481:6;27437:72;;27526:519;27718:2;27703:18;;27732:71;27707:9;27776:6;27732:71;;;27814:72;27882:2;27871:9;27867:18;27858:6;27814:72;;;27934:9;27928:4;27924:20;27919:2;27908:9;27904:18;27897:48;27959:76;28030:4;28021:6;27959:76;;28052:796;28386:2;28400:47;;;28371:18;;28461:146;28371:18;28593:6;28461:146;;;28453:154;;28655:9;28649:4;28645:20;28640:2;28629:9;28625:18;28618:48;28680:158;28833:4;28824:6;28680:158;;28855:201;28967:2;28952:18;;28981:65;28956:9;29019:6;28981:65;;29063:213;29181:2;29166:18;;29195:71;29170:9;29239:6;29195:71;;29283:263;29426:2;29411:18;;29440:96;29415:9;29509:6;29440:96;;29553:301;29691:2;29705:47;;;29676:18;;29766:78;29676:18;29830:6;29766:78;;29861:407;30052:2;30066:47;;;30037:18;;30127:131;30037:18;30127:131;;30275:407;30466:2;30480:47;;;30451:18;;30541:131;30451:18;30541:131;;30689:407;30880:2;30894:47;;;30865:18;;30955:131;30865:18;30955:131;;31103:407;31294:2;31308:47;;;31279:18;;31369:131;31279:18;31369:131;;31517:407;31708:2;31722:47;;;31693:18;;31783:131;31693:18;31783:131;;31931:407;32122:2;32136:47;;;32107:18;;32197:131;32107:18;32197:131;;32345:407;32536:2;32550:47;;;32521:18;;32611:131;32521:18;32611:131;;32759:407;32950:2;32964:47;;;32935:18;;33025:131;32935:18;33025:131;;33393:472;33589:2;33574:18;;33603:71;33578:9;33647:6;33603:71;;;33722:9;33716:4;33712:20;33707:2;33696:9;33692:18;33685:48;33747:108;33850:4;33841:6;33747:108;;33872:807;34152:3;34137:19;;34167:71;34141:9;34211:6;34167:71;;;34249:72;34317:2;34306:9;34302:18;34293:6;34249:72;;;34369:9;34363:4;34359:20;34354:2;34343:9;34339:18;34332:48;34394:108;34497:4;34488:6;34394:108;;;34386:116;;34513:72;34581:2;34570:9;34566:18;34557:6;34513:72;;;34596:73;34664:3;34653:9;34649:19;34640:6;34596:73;;34686:256;34748:2;34742:9;34774:17;;;34849:18;34834:34;;34870:22;;;34831:62;34828:2;;;34906:1;34903;34896:12;34828:2;34922;34915:22;34726:216;;-1:-1;34726:216;34949:304;;35108:18;35100:6;35097:30;35094:2;;;35140:1;35137;35130:12;35094:2;-1:-1;35175:4;35163:17;;;35228:15;;35031:222;35260:317;;35399:18;35391:6;35388:30;35385:2;;;35431:1;35428;35421:12;35385:2;-1:-1;35562:4;35498;35475:17;;;;-1:-1;;35471:33;35552:15;;35322:255;35584:151;35708:4;35699:14;;35656:79;36102:137;36205:12;;36176:63;37349:178;37467:19;;;37516:4;37507:14;;37460:67;38764:91;;38826:24;38844:5;38826:24;;38968:85;39034:13;39027:21;;39010:43;39060:144;39132:66;39121:78;;39104:100;39211:144;39283:66;39272:78;;39255:100;39362:72;39424:5;39407:27;39441:138;39519:5;39525:49;39519:5;39525:49;;39586:152;39671:5;39677:56;39671:5;39677:56;;39898:109;39971:30;39960:42;;39943:64;40014:121;-1:-1;;;;;40076:54;;40059:76;40221:88;40293:10;40282:22;;40265:44;40316:171;;40420:62;40476:5;40420:62;;40634:138;;40727:40;40761:5;40727:40;;40779:152;;40879:47;40920:5;40879:47;;41092:145;41173:6;41168:3;41163;41150:30;-1:-1;41229:1;41211:16;;41204:27;41143:94;41246:268;41311:1;41318:101;41332:6;41329:1;41326:13;41318:101;;;41399:11;;;41393:18;41380:11;;;41373:39;41354:2;41347:10;41318:101;;;41434:6;41431:1;41428:13;41425:2;;;-1:-1;;41499:1;41481:16;;41474:27;41295:219;41522:95;;41586:26;41606:5;41865:89;41929:20;41943:5;41929:20;;41961:97;42049:2;42029:14;-1:-1;;42025:28;;42009:49;42066:94;42140:2;42136:14;;42108:52;42168:107;42253:1;42246:5;42243:12;42233:2;;42259:9;42282:114;42374:1;42367:5;42364:12;42354:2;;42380:9;42521:117;42590:24;42608:5;42590:24;;;42583:5;42580:35;42570:2;;42629:1;42626;42619:12;42785:111;42851:21;42866:5;42851:21;;42903:117;42972:24;42990:5;42972:24;;43027:117;43096:24;43114:5;43096:24;;43151:115;43219:23;43236:5;43219:23;",
|
|
339
339
|
"source": "/*\n\n Copyright 2021 Dolomite.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.7;\npragma experimental ABIEncoderV2;\n\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/ownership/Ownable.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\n\nimport \"@uniswap/lib/contracts/libraries/Babylonian.sol\";\n\nimport \"../../protocol/interfaces/IExchangeWrapper.sol\";\nimport \"../../protocol/interfaces/IDolomiteMargin.sol\";\n\nimport \"../../protocol/lib/Account.sol\";\nimport \"../../protocol/lib/Actions.sol\";\nimport \"../../protocol/lib/Require.sol\";\nimport \"../../protocol/lib/Types.sol\";\n\nimport \"../lib/DolomiteAmmLibrary.sol\";\nimport \"../lib/TypedSignature.sol\";\n\nimport \"../interfaces/IDolomiteAmmFactory.sol\";\nimport \"../interfaces/IDolomiteAmmPair.sol\";\nimport \"../interfaces/IUniswapV2Router.sol\";\n\nimport \"../helpers/OnlyDolomiteMargin.sol\";\n\n\n/**\n * @title AmmRebalancerProxyV1\n * @author Dolomite\n *\n * Contract for re-balancing the Dolomite AMM pools against other UniswapV2Router compatible pools\n */\ncontract AmmRebalancerProxyV1 is IExchangeWrapper, OnlyDolomiteMargin, Ownable {\n using SafeERC20 for IERC20;\n using SafeMath for uint;\n\n bytes32 public constant FILE = \"AmmRebalancerProxyV1\";\n\n address public DOLOMITE_AMM_FACTORY;\n mapping(address => bytes32) public ROUTER_TO_INIT_CODE_HASH_MAP;\n\n struct RebalanceParams {\n bytes dolomitePath;\n uint truePriceTokenA;\n uint truePriceTokenB;\n address otherRouter;\n bytes otherPath;\n }\n\n struct RebalanceCache {\n address dolomiteFactory;\n address[] dolomitePools;\n }\n\n event RouterInitCodeHashSet(address indexed router, bytes32 initCodeHash);\n\n // ============ Constructor ============\n\n constructor (\n address dolomiteMargin,\n address dolomiteAmmFactory,\n address[] memory routers,\n bytes32[] memory initCodeHashes\n )\n public\n OnlyDolomiteMargin(dolomiteMargin)\n {\n DOLOMITE_AMM_FACTORY = dolomiteAmmFactory;\n\n Require.that(\n routers.length == initCodeHashes.length,\n FILE,\n \"routers/initCodes invalid length\"\n );\n for (uint i = 0; i < routers.length; i++) {\n ROUTER_TO_INIT_CODE_HASH_MAP[routers[i]] = initCodeHashes[i];\n emit RouterInitCodeHashSet(routers[i], initCodeHashes[i]);\n }\n }\n\n function adminSetRouterInitCodeHashes(\n address[] calldata routers,\n bytes32[] calldata initCodeHashes\n )\n external\n onlyOwner {\n Require.that(\n routers.length == initCodeHashes.length,\n FILE,\n \"routers/initCodes invalid length\"\n );\n\n for (uint i = 0; i < routers.length; i++) {\n ROUTER_TO_INIT_CODE_HASH_MAP[routers[i]] = initCodeHashes[i];\n emit RouterInitCodeHashSet(routers[i], initCodeHashes[i]);\n }\n }\n\n function exchange(\n address,\n address receiver,\n address makerToken,\n address takerToken,\n uint256 requestedFillAmount,\n bytes calldata orderData\n )\n external\n onlyDolomiteMargin(msg.sender)\n returns (uint256) {\n (address router, uint amountOutMin, bytes memory rawPath) = abi.decode(orderData, (address, uint, bytes));\n address[] memory path = _decodeRawPath(rawPath);\n Require.that(\n path[0] == takerToken,\n FILE,\n \"path[0] not takerToken\"\n );\n Require.that(\n path[path.length - 1] == makerToken,\n FILE,\n \"path[last] not makerToken\"\n );\n\n _checkAllowanceAndApprove(takerToken, router, requestedFillAmount);\n\n uint[] memory amounts = IUniswapV2Router(router).swapExactTokensForTokens(\n requestedFillAmount,\n amountOutMin,\n path,\n address(this),\n block.timestamp\n );\n\n _checkAllowanceAndApprove(makerToken, receiver, amounts[amounts.length - 1]);\n\n return amounts[amounts.length - 1];\n }\n\n function getExchangeCost(\n address makerToken,\n address takerToken,\n uint256 desiredMakerToken,\n bytes calldata orderData\n )\n external\n view\n returns (uint256) {\n (address router,, bytes memory rawPath) = abi.decode(orderData, (address, uint, bytes));\n address[] memory path = _decodeRawPath(rawPath);\n Require.that(\n path[0] == takerToken,\n FILE,\n \"path[0] not takerToken\"\n );\n Require.that(\n path[path.length - 1] == makerToken,\n FILE,\n \"path[last] not makerToken\"\n );\n\n return IUniswapV2Router(router).getAmountsIn(desiredMakerToken, path)[0];\n }\n\n function performRebalance(\n RebalanceParams memory params\n ) public {\n Require.that(\n params.dolomitePath.length == 40 && params.otherPath.length >= 40 && params.otherPath.length % 20 == 0,\n FILE,\n \"invalid path lengths\"\n );\n\n address[] memory dolomitePath = _decodeRawPath(params.dolomitePath);\n address[] memory otherPath = _decodeRawPath(params.otherPath);\n Require.that(\n dolomitePath[0] == otherPath[otherPath.length - 1] && dolomitePath[dolomitePath.length - 1] == otherPath[0],\n FILE,\n \"invalid path alignment\"\n );\n\n // solium-disable indentation\n RebalanceCache memory cache;\n {\n address dolomiteFactory = DOLOMITE_AMM_FACTORY;\n cache = RebalanceCache({\n dolomiteFactory: dolomiteFactory,\n dolomitePools: DolomiteAmmLibrary.getPools(dolomiteFactory, dolomitePath)\n });\n }\n // solium-enable indentation\n\n uint dolomiteAmountIn;\n // solium-disable indentation\n {\n (uint256 reserveA, uint256 reserveB) = DolomiteAmmLibrary.getReservesWei(\n cache.dolomiteFactory,\n dolomitePath[0],\n dolomitePath[1]\n );\n (bool isAToB, uint _dolomiteAmountIn) = _computeProfitMaximizingTrade(\n params.truePriceTokenA,\n params.truePriceTokenB,\n reserveA,\n reserveB\n );\n\n Require.that(\n isAToB,\n FILE,\n \"invalid aToB\"\n );\n\n dolomiteAmountIn = _dolomiteAmountIn;\n }\n // solium-enable indentation\n\n Account.Info[] memory accounts = new Account.Info[](2 + cache.dolomitePools.length);\n accounts[0] = Account.Info({\n owner : msg.sender,\n number : 0\n });\n accounts[1] = Account.Info({\n owner : msg.sender,\n number : 1\n });\n\n for (uint i = 0; i < cache.dolomitePools.length; i++) {\n accounts[2 + i] = Account.Info({\n owner : cache.dolomitePools[i],\n number : 0\n });\n }\n\n uint[] memory dolomiteMarketPath = _getMarketPathFromTokenPath(dolomitePath);\n\n // solium-disable indentation\n uint otherAmountIn;\n {\n // blocked off to prevent the \"stack too deep\" error\n bytes32 otherInitCodeHash = ROUTER_TO_INIT_CODE_HASH_MAP[params.otherRouter];\n Require.that(\n otherInitCodeHash != bytes32(0),\n FILE,\n \"router not recognized\"\n );\n\n // dolomiteAmountIn is the amountOut for the other trade\n // Require.that(false, FILE, \"printing results\", dolomiteAmountIn);\n otherAmountIn = DolomiteAmmLibrary.getAmountsIn(\n IUniswapV2Router(params.otherRouter).factory(),\n otherInitCodeHash,\n dolomiteAmountIn,\n otherPath\n )[0];\n }\n // solium-enable indentation\n\n // 1 action for transferring, 1 for selling via the other router, and trades are paths.length - 1\n Actions.ActionArgs[] memory actions = new Actions.ActionArgs[](2 + dolomitePath.length - 1);\n\n // trade from accountIndex=1 and transfer to 0, to ensure re-balances are down with flash-loaned funds\n // the dolomiteInputMarketId is the output market for the other trade and vice versa\n // solium-disable indentation\n {\n // done to prevent the \"stack too deep\" error\n uint otherAmountOut = dolomiteAmountIn;\n actions[0] = _encodeSell(\n 1,\n dolomiteMarketPath[dolomiteMarketPath.length - 1],\n dolomiteMarketPath[0],\n otherAmountIn,\n params.otherRouter,\n params.otherPath,\n otherAmountOut // this is the other trade's output amount\n );\n }\n // solium-enable indentation\n\n uint[] memory dolomiteAmountsOut = DolomiteAmmLibrary.getAmountsOutWei(\n cache.dolomiteFactory,\n dolomiteAmountIn,\n dolomitePath\n );\n Require.that(\n otherAmountIn <= dolomiteAmountsOut[dolomiteAmountsOut.length - 1],\n FILE,\n \"arb closed\"\n );\n\n for (uint i = 0; i < cache.dolomitePools.length; i++) {\n Require.that(\n accounts[i + 2].owner == cache.dolomitePools[i],\n FILE,\n \"invalid pool owner address\"\n );\n actions[i + 1] = _encodeTrade(\n 1,\n i + 2,\n dolomiteMarketPath[i],\n dolomiteMarketPath[i + 1],\n cache.dolomitePools[i],\n dolomiteAmountsOut[i],\n dolomiteAmountsOut[i + 1]\n );\n }\n actions[actions.length - 1] = _encodeTransferAll(\n 1,\n 0,\n dolomiteMarketPath[dolomiteMarketPath.length - 1]\n );\n\n DOLOMITE_MARGIN.operate(accounts, actions);\n }\n\n // ============ Internal Functions ============\n\n function _computeProfitMaximizingTrade(\n uint256 truePriceTokenA,\n uint256 truePriceTokenB,\n uint256 reserveA,\n uint256 reserveB\n )\n internal\n pure\n returns (bool isAToB, uint256 amountIn)\n {\n isAToB = reserveA.mul(truePriceTokenB).div(reserveB) < truePriceTokenA;\n\n uint256 invariant = reserveA.mul(reserveB);\n\n uint256 leftSide = Babylonian.sqrt(\n invariant.mul(isAToB ? truePriceTokenA : truePriceTokenB).mul(1000) /\n uint256(isAToB ? truePriceTokenB : truePriceTokenA).mul(997)\n );\n uint256 rightSide = (isAToB ? reserveA.mul(1000) : reserveB.mul(1000)) / 997;\n\n // compute the amount that must be sent to move the price to the profit-maximizing price\n amountIn = leftSide.sub(rightSide);\n }\n\n function _decodeRawPath(\n bytes memory rawPath\n ) internal pure returns (address[] memory) {\n Require.that(\n rawPath.length % 20 == 0 && rawPath.length >= 40,\n FILE,\n \"invalid path length\"\n );\n address[] memory path = new address[](rawPath.length / 20);\n for (uint i = 0; i < path.length; i++) {\n uint offset = 20 * i; // 20 bytes per address\n bytes20 token;\n // solium-disable-next-line\n assembly {\n token := mload(add(add(rawPath, 32), offset))\n }\n path[i] = address(token);\n }\n return path;\n }\n\n function _checkAllowanceAndApprove(\n address token,\n address spender,\n uint amount\n ) internal {\n if (IERC20(token).allowance(address(this), spender) < amount) {\n IERC20(token).safeApprove(spender, uint(- 1));\n }\n }\n\n function _encodeSell(\n uint fromAccountIndex,\n uint primaryMarketId,\n uint secondaryMarketId,\n uint amountInWei,\n address router,\n bytes memory path,\n uint amountOutWei\n ) internal view returns (Actions.ActionArgs memory) {\n return Actions.ActionArgs({\n actionType : Actions.ActionType.Sell,\n accountId : fromAccountIndex,\n // solium-disable-next-line arg-overflow\n amount : Types.AssetAmount(false, Types.AssetDenomination.Wei, Types.AssetReference.Delta, amountInWei),\n primaryMarketId : primaryMarketId,\n secondaryMarketId : secondaryMarketId,\n otherAddress : address(this),\n otherAccountId : uint(- 1),\n data : abi.encode(router, amountOutWei, path)\n });\n }\n\n function _encodeTrade(\n uint fromAccountIndex,\n uint toAccountIndex,\n uint primaryMarketId,\n uint secondaryMarketId,\n address traderAddress,\n uint amountInWei,\n uint amountOutWei\n ) internal pure returns (Actions.ActionArgs memory) {\n return Actions.ActionArgs({\n actionType : Actions.ActionType.Trade,\n accountId : fromAccountIndex,\n // solium-disable-next-line arg-overflow\n amount : Types.AssetAmount(true, Types.AssetDenomination.Wei, Types.AssetReference.Delta, amountInWei),\n primaryMarketId : primaryMarketId,\n secondaryMarketId : secondaryMarketId,\n otherAddress : traderAddress,\n otherAccountId : toAccountIndex,\n data : abi.encode(amountOutWei)\n });\n }\n\n function _encodeTransferAll(\n uint fromAccountIndex,\n uint toAccountIndex,\n uint marketId\n ) internal pure returns (Actions.ActionArgs memory) {\n return Actions.ActionArgs({\n actionType : Actions.ActionType.Transfer,\n accountId : fromAccountIndex,\n // solium-disable-next-line arg-overflow\n amount : Types.AssetAmount(true, Types.AssetDenomination.Wei, Types.AssetReference.Target, 0),\n primaryMarketId : marketId,\n secondaryMarketId : uint(- 1),\n otherAddress : address(0),\n otherAccountId : toAccountIndex,\n data : bytes(\"\")\n });\n }\n\n function _getMarketPathFromTokenPath(\n address[] memory path\n ) internal view returns (uint[] memory) {\n IDolomiteMargin dolomiteMargin = DOLOMITE_MARGIN;\n uint[] memory marketPath = new uint[](path.length);\n for (uint i = 0; i < path.length; i++) {\n marketPath[i] = dolomiteMargin.getMarketIdByTokenAddress(path[i]);\n }\n return marketPath;\n }\n\n}\n",
|
|
340
|
-
"sourcePath": "/
|
|
340
|
+
"sourcePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/AmmRebalancerProxyV1.sol",
|
|
341
341
|
"ast": {
|
|
342
|
-
"absolutePath": "/
|
|
342
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/AmmRebalancerProxyV1.sol",
|
|
343
343
|
"exportedSymbols": {
|
|
344
344
|
"AmmRebalancerProxyV1": [
|
|
345
345
|
9452
|
|
@@ -435,7 +435,7 @@
|
|
|
435
435
|
"unitAlias": ""
|
|
436
436
|
},
|
|
437
437
|
{
|
|
438
|
-
"absolutePath": "/
|
|
438
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IExchangeWrapper.sol",
|
|
439
439
|
"file": "../../protocol/interfaces/IExchangeWrapper.sol",
|
|
440
440
|
"id": 8286,
|
|
441
441
|
"nodeType": "ImportDirective",
|
|
@@ -446,7 +446,7 @@
|
|
|
446
446
|
"unitAlias": ""
|
|
447
447
|
},
|
|
448
448
|
{
|
|
449
|
-
"absolutePath": "/
|
|
449
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IDolomiteMargin.sol",
|
|
450
450
|
"file": "../../protocol/interfaces/IDolomiteMargin.sol",
|
|
451
451
|
"id": 8287,
|
|
452
452
|
"nodeType": "ImportDirective",
|
|
@@ -457,7 +457,7 @@
|
|
|
457
457
|
"unitAlias": ""
|
|
458
458
|
},
|
|
459
459
|
{
|
|
460
|
-
"absolutePath": "/
|
|
460
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol",
|
|
461
461
|
"file": "../../protocol/lib/Account.sol",
|
|
462
462
|
"id": 8288,
|
|
463
463
|
"nodeType": "ImportDirective",
|
|
@@ -468,7 +468,7 @@
|
|
|
468
468
|
"unitAlias": ""
|
|
469
469
|
},
|
|
470
470
|
{
|
|
471
|
-
"absolutePath": "/
|
|
471
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Actions.sol",
|
|
472
472
|
"file": "../../protocol/lib/Actions.sol",
|
|
473
473
|
"id": 8289,
|
|
474
474
|
"nodeType": "ImportDirective",
|
|
@@ -479,7 +479,7 @@
|
|
|
479
479
|
"unitAlias": ""
|
|
480
480
|
},
|
|
481
481
|
{
|
|
482
|
-
"absolutePath": "/
|
|
482
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Require.sol",
|
|
483
483
|
"file": "../../protocol/lib/Require.sol",
|
|
484
484
|
"id": 8290,
|
|
485
485
|
"nodeType": "ImportDirective",
|
|
@@ -490,7 +490,7 @@
|
|
|
490
490
|
"unitAlias": ""
|
|
491
491
|
},
|
|
492
492
|
{
|
|
493
|
-
"absolutePath": "/
|
|
493
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol",
|
|
494
494
|
"file": "../../protocol/lib/Types.sol",
|
|
495
495
|
"id": 8291,
|
|
496
496
|
"nodeType": "ImportDirective",
|
|
@@ -501,7 +501,7 @@
|
|
|
501
501
|
"unitAlias": ""
|
|
502
502
|
},
|
|
503
503
|
{
|
|
504
|
-
"absolutePath": "/
|
|
504
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/DolomiteAmmLibrary.sol",
|
|
505
505
|
"file": "../lib/DolomiteAmmLibrary.sol",
|
|
506
506
|
"id": 8292,
|
|
507
507
|
"nodeType": "ImportDirective",
|
|
@@ -512,7 +512,7 @@
|
|
|
512
512
|
"unitAlias": ""
|
|
513
513
|
},
|
|
514
514
|
{
|
|
515
|
-
"absolutePath": "/
|
|
515
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/TypedSignature.sol",
|
|
516
516
|
"file": "../lib/TypedSignature.sol",
|
|
517
517
|
"id": 8293,
|
|
518
518
|
"nodeType": "ImportDirective",
|
|
@@ -523,7 +523,7 @@
|
|
|
523
523
|
"unitAlias": ""
|
|
524
524
|
},
|
|
525
525
|
{
|
|
526
|
-
"absolutePath": "/
|
|
526
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmFactory.sol",
|
|
527
527
|
"file": "../interfaces/IDolomiteAmmFactory.sol",
|
|
528
528
|
"id": 8294,
|
|
529
529
|
"nodeType": "ImportDirective",
|
|
@@ -534,7 +534,7 @@
|
|
|
534
534
|
"unitAlias": ""
|
|
535
535
|
},
|
|
536
536
|
{
|
|
537
|
-
"absolutePath": "/
|
|
537
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmPair.sol",
|
|
538
538
|
"file": "../interfaces/IDolomiteAmmPair.sol",
|
|
539
539
|
"id": 8295,
|
|
540
540
|
"nodeType": "ImportDirective",
|
|
@@ -545,7 +545,7 @@
|
|
|
545
545
|
"unitAlias": ""
|
|
546
546
|
},
|
|
547
547
|
{
|
|
548
|
-
"absolutePath": "/
|
|
548
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IUniswapV2Router.sol",
|
|
549
549
|
"file": "../interfaces/IUniswapV2Router.sol",
|
|
550
550
|
"id": 8296,
|
|
551
551
|
"nodeType": "ImportDirective",
|
|
@@ -556,7 +556,7 @@
|
|
|
556
556
|
"unitAlias": ""
|
|
557
557
|
},
|
|
558
558
|
{
|
|
559
|
-
"absolutePath": "/
|
|
559
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/helpers/OnlyDolomiteMargin.sol",
|
|
560
560
|
"file": "../helpers/OnlyDolomiteMargin.sol",
|
|
561
561
|
"id": 8297,
|
|
562
562
|
"nodeType": "ImportDirective",
|
|
@@ -16852,7 +16852,7 @@
|
|
|
16852
16852
|
"src": "595:14705:27"
|
|
16853
16853
|
},
|
|
16854
16854
|
"legacyAST": {
|
|
16855
|
-
"absolutePath": "/
|
|
16855
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/AmmRebalancerProxyV1.sol",
|
|
16856
16856
|
"exportedSymbols": {
|
|
16857
16857
|
"AmmRebalancerProxyV1": [
|
|
16858
16858
|
9452
|
|
@@ -16948,7 +16948,7 @@
|
|
|
16948
16948
|
"unitAlias": ""
|
|
16949
16949
|
},
|
|
16950
16950
|
{
|
|
16951
|
-
"absolutePath": "/
|
|
16951
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IExchangeWrapper.sol",
|
|
16952
16952
|
"file": "../../protocol/interfaces/IExchangeWrapper.sol",
|
|
16953
16953
|
"id": 8286,
|
|
16954
16954
|
"nodeType": "ImportDirective",
|
|
@@ -16959,7 +16959,7 @@
|
|
|
16959
16959
|
"unitAlias": ""
|
|
16960
16960
|
},
|
|
16961
16961
|
{
|
|
16962
|
-
"absolutePath": "/
|
|
16962
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IDolomiteMargin.sol",
|
|
16963
16963
|
"file": "../../protocol/interfaces/IDolomiteMargin.sol",
|
|
16964
16964
|
"id": 8287,
|
|
16965
16965
|
"nodeType": "ImportDirective",
|
|
@@ -16970,7 +16970,7 @@
|
|
|
16970
16970
|
"unitAlias": ""
|
|
16971
16971
|
},
|
|
16972
16972
|
{
|
|
16973
|
-
"absolutePath": "/
|
|
16973
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol",
|
|
16974
16974
|
"file": "../../protocol/lib/Account.sol",
|
|
16975
16975
|
"id": 8288,
|
|
16976
16976
|
"nodeType": "ImportDirective",
|
|
@@ -16981,7 +16981,7 @@
|
|
|
16981
16981
|
"unitAlias": ""
|
|
16982
16982
|
},
|
|
16983
16983
|
{
|
|
16984
|
-
"absolutePath": "/
|
|
16984
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Actions.sol",
|
|
16985
16985
|
"file": "../../protocol/lib/Actions.sol",
|
|
16986
16986
|
"id": 8289,
|
|
16987
16987
|
"nodeType": "ImportDirective",
|
|
@@ -16992,7 +16992,7 @@
|
|
|
16992
16992
|
"unitAlias": ""
|
|
16993
16993
|
},
|
|
16994
16994
|
{
|
|
16995
|
-
"absolutePath": "/
|
|
16995
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Require.sol",
|
|
16996
16996
|
"file": "../../protocol/lib/Require.sol",
|
|
16997
16997
|
"id": 8290,
|
|
16998
16998
|
"nodeType": "ImportDirective",
|
|
@@ -17003,7 +17003,7 @@
|
|
|
17003
17003
|
"unitAlias": ""
|
|
17004
17004
|
},
|
|
17005
17005
|
{
|
|
17006
|
-
"absolutePath": "/
|
|
17006
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol",
|
|
17007
17007
|
"file": "../../protocol/lib/Types.sol",
|
|
17008
17008
|
"id": 8291,
|
|
17009
17009
|
"nodeType": "ImportDirective",
|
|
@@ -17014,7 +17014,7 @@
|
|
|
17014
17014
|
"unitAlias": ""
|
|
17015
17015
|
},
|
|
17016
17016
|
{
|
|
17017
|
-
"absolutePath": "/
|
|
17017
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/DolomiteAmmLibrary.sol",
|
|
17018
17018
|
"file": "../lib/DolomiteAmmLibrary.sol",
|
|
17019
17019
|
"id": 8292,
|
|
17020
17020
|
"nodeType": "ImportDirective",
|
|
@@ -17025,7 +17025,7 @@
|
|
|
17025
17025
|
"unitAlias": ""
|
|
17026
17026
|
},
|
|
17027
17027
|
{
|
|
17028
|
-
"absolutePath": "/
|
|
17028
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/lib/TypedSignature.sol",
|
|
17029
17029
|
"file": "../lib/TypedSignature.sol",
|
|
17030
17030
|
"id": 8293,
|
|
17031
17031
|
"nodeType": "ImportDirective",
|
|
@@ -17036,7 +17036,7 @@
|
|
|
17036
17036
|
"unitAlias": ""
|
|
17037
17037
|
},
|
|
17038
17038
|
{
|
|
17039
|
-
"absolutePath": "/
|
|
17039
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmFactory.sol",
|
|
17040
17040
|
"file": "../interfaces/IDolomiteAmmFactory.sol",
|
|
17041
17041
|
"id": 8294,
|
|
17042
17042
|
"nodeType": "ImportDirective",
|
|
@@ -17047,7 +17047,7 @@
|
|
|
17047
17047
|
"unitAlias": ""
|
|
17048
17048
|
},
|
|
17049
17049
|
{
|
|
17050
|
-
"absolutePath": "/
|
|
17050
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IDolomiteAmmPair.sol",
|
|
17051
17051
|
"file": "../interfaces/IDolomiteAmmPair.sol",
|
|
17052
17052
|
"id": 8295,
|
|
17053
17053
|
"nodeType": "ImportDirective",
|
|
@@ -17058,7 +17058,7 @@
|
|
|
17058
17058
|
"unitAlias": ""
|
|
17059
17059
|
},
|
|
17060
17060
|
{
|
|
17061
|
-
"absolutePath": "/
|
|
17061
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/interfaces/IUniswapV2Router.sol",
|
|
17062
17062
|
"file": "../interfaces/IUniswapV2Router.sol",
|
|
17063
17063
|
"id": 8296,
|
|
17064
17064
|
"nodeType": "ImportDirective",
|
|
@@ -17069,7 +17069,7 @@
|
|
|
17069
17069
|
"unitAlias": ""
|
|
17070
17070
|
},
|
|
17071
17071
|
{
|
|
17072
|
-
"absolutePath": "/
|
|
17072
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/helpers/OnlyDolomiteMargin.sol",
|
|
17073
17073
|
"file": "../helpers/OnlyDolomiteMargin.sol",
|
|
17074
17074
|
"id": 8297,
|
|
17075
17075
|
"nodeType": "ImportDirective",
|
|
@@ -33368,9 +33368,55 @@
|
|
|
33368
33368
|
"name": "solc",
|
|
33369
33369
|
"version": "0.5.16+commit.9c3226ce.Linux.g++"
|
|
33370
33370
|
},
|
|
33371
|
-
"networks": {
|
|
33371
|
+
"networks": {
|
|
33372
|
+
"1001": {
|
|
33373
|
+
"events": {
|
|
33374
|
+
"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
|
|
33375
|
+
"anonymous": false,
|
|
33376
|
+
"inputs": [
|
|
33377
|
+
{
|
|
33378
|
+
"indexed": true,
|
|
33379
|
+
"internalType": "address",
|
|
33380
|
+
"name": "previousOwner",
|
|
33381
|
+
"type": "address"
|
|
33382
|
+
},
|
|
33383
|
+
{
|
|
33384
|
+
"indexed": true,
|
|
33385
|
+
"internalType": "address",
|
|
33386
|
+
"name": "newOwner",
|
|
33387
|
+
"type": "address"
|
|
33388
|
+
}
|
|
33389
|
+
],
|
|
33390
|
+
"name": "OwnershipTransferred",
|
|
33391
|
+
"type": "event"
|
|
33392
|
+
},
|
|
33393
|
+
"0x8439af8069aecb3b77f115322be8bf93e7756c934ab30ea4fd1b59ea4227484a": {
|
|
33394
|
+
"anonymous": false,
|
|
33395
|
+
"inputs": [
|
|
33396
|
+
{
|
|
33397
|
+
"indexed": true,
|
|
33398
|
+
"internalType": "address",
|
|
33399
|
+
"name": "router",
|
|
33400
|
+
"type": "address"
|
|
33401
|
+
},
|
|
33402
|
+
{
|
|
33403
|
+
"indexed": false,
|
|
33404
|
+
"internalType": "bytes32",
|
|
33405
|
+
"name": "initCodeHash",
|
|
33406
|
+
"type": "bytes32"
|
|
33407
|
+
}
|
|
33408
|
+
],
|
|
33409
|
+
"name": "RouterInitCodeHashSet",
|
|
33410
|
+
"type": "event"
|
|
33411
|
+
}
|
|
33412
|
+
},
|
|
33413
|
+
"links": {},
|
|
33414
|
+
"address": "0xFcCeD5E997E7fb1D0594518D3eD57245bB8ed17E",
|
|
33415
|
+
"transactionHash": "0x643d45c77c1f0ef6a2d189852cebf3ea1a90b73e6f1ebaa9fc8737c9231c9d62"
|
|
33416
|
+
}
|
|
33417
|
+
},
|
|
33372
33418
|
"schemaVersion": "3.0.23",
|
|
33373
|
-
"updatedAt": "2022-02-
|
|
33419
|
+
"updatedAt": "2022-02-07T07:18:44.906Z",
|
|
33374
33420
|
"devdoc": {
|
|
33375
33421
|
"author": "Dolomite * Contract for re-balancing the Dolomite AMM pools against other UniswapV2Router compatible pools",
|
|
33376
33422
|
"methods": {
|