[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "string", "name": "targetAsset_", "type": "string" }, { "internalType": "uint256", "name": "targetLeverage_", "type": "uint256" }, { "internalType": "bool", "name": "isLong_", "type": "bool" }, { "internalType": "address", "name": "addressProvider_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [], "name": "CannotRebalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "ExceedsLimit", "type": "error" }, { "inputs": [], "name": "FailedCall", "type": "error" }, { "inputs": [], "name": "Inactive", "type": "error" }, { "inputs": [], "name": "InsufficientAmount", "type": "error" }, { "inputs": [], "name": "LeverageUpdatePending", "type": "error" }, { "inputs": [], "name": "NotAuthorized", "type": "error" }, { "inputs": [], "name": "NotOwner", "type": "error" }, { "inputs": [], "name": "Paused", "type": "error" }, { "inputs": [], "name": "SameAsCurrent", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "leveragedTokenAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "baseAssetAmount", "type": "uint256" } ], "name": "Minted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "isPaused", "type": "bool" } ], "name": "PausedSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "currentLeverage", "type": "uint256" } ], "name": "Rebalanced", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "leveragedTokenAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "baseAssetAmount", "type": "uint256" } ], "name": "Redeemed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "canRebalance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "chargeStreamingFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "baseAmount_", "type": "uint256" }, { "internalType": "bool", "name": "isDeposit_", "type": "bool" } ], "name": "computePriceImpact", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "exchangeRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isLong", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isPaused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "baseAmountIn_", "type": "uint256" }, { "internalType": "uint256", "name": "minLeveragedTokenAmountOut_", "type": "uint256" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rebalance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rebalanceThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "leveragedTokenAmount_", "type": "uint256" }, { "internalType": "uint256", "name": "minBaseAmountReceived_", "type": "uint256" } ], "name": "redeem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "isPaused_", "type": "bool" } ], "name": "setIsPaused", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "targetAsset", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "targetLeverage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
61010060405234620005bd5762003a88803803806200001e81620005c2565b92833981019060c081830312620005bd5780516001600160401b0390818111620005bd578362000050918401620005e8565b60209182840151818111620005bd57856200006d918601620005e8565b94604085015190828211620005bd5762000089918601620005e8565b946060850151936080860151958615158703620005bd5760a001516001600160a01b0381169790889003620005bd57845191848311620004bd576003938454936001978886811c96168015620005b2575b848710146200059c578190601f9687811162000546575b508490878311600114620004df57600092620004d3575b505060001982881b1c191690881b1785555b8051868111620004bd5760049182548981811c91168015620004b2575b858210146200049d5790818784931162000447575b508490878311600114620003e057600092620003d4575b505060001982881b1c191690881b1781555b896080528251958611620003bf57600654908782811c92168015620003b4575b838310146200039f575083811162000353575b5080928511600114620002e35750938394918492600095620002d7575b50501b92600019911b1c1916176006555b60c05260e05260a05260405161342d90816200065b823960805181610c29015260a0518181816102370152818161045d0152818161064201528181610a9201528181611304015281816117f1015281816118d1015281816119a701528181611eb5015281816120690152818161217f015281816122d30152818161259b0152818161285301528181612b5e01528181612c1101528181612dab015261327a015260c051818181610184015281816102e50152818161079b015281816113cc01528181611a740152818161240d01526125f7015260e051818181610311015281816107c101528181610e26015281816113f601528181611ab6015261261d0152f35b015193503880620001c5565b92919084601f198116600660005285600020956000905b898383106200033857505050106200031d575b50505050811b01600655620001d6565b01519060f884600019921b161c19169055388080806200030d565b858701518955909701969485019488935090810190620002fa565b6006600052816000208480880160051c82019284891062000395575b0160051c019087905b82811062000388575050620001a8565b6000815501879062000378565b925081926200036f565b602290634e487b7160e01b6000525260246000fd5b91607f169162000195565b604190634e487b7160e01b6000525260246000fd5b01519050388062000163565b908a9350601f1983169185600052866000209260005b8882821062000430575050841162000417575b505050811b01815562000175565b0151600019838a1b60f8161c1916905538808062000409565b8385015186558e97909501949384019301620003f6565b90915083600052846000208780850160051c82019287861062000493575b918c91869594930160051c01915b828110620004835750506200014c565b600081558594508c910162000473565b9250819262000465565b602284634e487b7160e01b6000525260246000fd5b90607f169062000137565b634e487b7160e01b600052604160045260246000fd5b01519050388062000108565b908a9350601f1983169189600052866000209260005b888282106200052f575050841162000516575b505050811b0185556200011a565b0151600019838a1b60f8161c1916905538808062000508565b8385015186558e97909501949384019301620004f5565b90915087600052846000208780850160051c82019287861062000592575b918c91869594930160051c01915b82811062000582575050620000f1565b600081558594508c910162000572565b9250819262000564565b634e487b7160e01b600052602260045260246000fd5b95607f1695620000da565b600080fd5b6040519190601f01601f191682016001600160401b03811183821017620004bd57604052565b919080601f84011215620005bd5782516001600160401b038111620004bd576020906200061e601f8201601f19168301620005c2565b92818452828287010111620005bd5760005b8181106200064657508260009394955001015290565b85810183015184820184015282016200063056fe608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde0314610f3057508163095ea7b314610e8657816318160ddd14610e675781631b2ef1ca14610e4b578163202a61a114610e0e57816322f3e2d414610de857816323b872dd14610cf4578163240976bf14610bed578163313ce56714610bd15781633ba0b9a914610bb45781633d4403ac14610b885781633dfe9f6a14610b6b578163603d68e214610a6257816370a0823114610a2b5781637cbc237314610a085781637d7c2a1c1461061157816395d89b411461052c578163a06880c01461042c578163a7c658e8146101fa57508063a9059cbb146101ca578063b187bd26146101a7578063d6c946ea1461016d5763dd62ed3e1461012257600080fd5b346101695780600319360112610169578060209261013e61104c565b610146611067565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b5034610169578160031936011261016957602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b503461016957816003193601126101695760209060ff6007541690519015158152f35b50346101695780600319360112610169576020906101f36101e961104c565b6024359033612755565b5160018152f35b8391503461016957826003193601126101695760243590811515809203610428578351633a34e39960e11b8082526020936001600160a01b0392917f00000000000000000000000000000000000000000000000000000000000000008416919086848781865afa9384156103ff578894610409575b50868951809563ec697e1360e01b82528289830152818881610293602482016110cd565b0392165afa9384156103ff5790879189956103e0575b50868a518095819382525afa9182156103d6579360a4928194928a968a926103a7575b508651978896879563062f69dd60e51b875216818601527f000000000000000000000000000000000000000000000000000000000000000060248601523560448501527f0000000000000000000000000000000000000000000000000000000000000000151560648501526084840152165afa90811561039d5783809261035d575b50508351928352151590820152f35b915092508383813d8311610396575b6103768183611255565b81010312610393575061038c81835193016112b9565b848061034e565b80fd5b503d61036c565b84513d85823e3d90fd5b6103c8919250893d8b116103cf575b6103c08183611255565b810190611277565b908b6102cc565b503d6103b6565b88513d89823e3d90fd5b6103f8919550823d84116103cf576103c08183611255565b938a6102a9565b89513d8a823e3d90fd5b610421919450873d89116103cf576103c08183611255565b928961026f565b8280fd5b8284346103935780600319360112610393578151633a34e39960e11b81526020936001600160a01b039190858282817f000000000000000000000000000000000000000000000000000000000000000087165afa918215610522579186929183928692610503575b508651948593849263ec697e1360e01b8452830152816104b6602482016110cd565b0392165afa9182156104f857906104d2926104db575b506122b3565b90519015158152f35b6104f29150843d86116103cf576103c08183611255565b846104cc565b8351903d90823e3d90fd5b61051b919250833d85116103cf576103c08183611255565b9088610494565b85513d86823e3d90fd5b839150346101695781600319360112610169578251918091805461054f81611093565b808652926020926001928084169081156105e2575060011461058b575b610587878961057d828a0383611255565b5191829182611003565b0390f35b815293507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8385106105cf5750505050810160200161057d82610587868061056c565b80548686018401529382019381016105b1565b9150506105879795508693506020925061057d94915060ff191682840152151560051b8201019294868061056c565b905034610428578260031936011261042857815163467c9eff60e01b81523382820152602091906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116918481602481865afa9081156108e65787916109cf575b50156109bf57845190633a34e39960e11b80835285838681875afa9283156109965788936109a0575b50858751809463ec697e1360e01b825282888301528185816106c7602482016110cd565b0392165afa928315610996578893610977575b506106e4836122b3565b1561096757865163e9b14a6960e01b815286818781885afa90811561090d57839188918b9161094a575b50878a518094819363171ade6560e11b8352165afa801561090d578990610917575b61075f915061075a61074186612833565b9161075587610750838661255a565b612b3f565b613256565b612bf2565b86519080825286828781885afa91821561090d5787926107fa918b916108f0575b50848a51916319d04c0760e11b8684015281881660248401527f000000000000000000000000000000000000000000000000000000000000000060448401527f000000000000000000000000000000000000000000000000000000000000000015156064840152606483526107f483611239565b166131e0565b508588518096819382525afa9283156108e6579185939161085197959389936108c7575b508551630707bdd360e11b81526001600160a01b0390921693820193845230602085015290968793849291839160400190565b0392165afa9081156108be57849161087d575b6000805160206133d8833981519152935051908152a180f35b90508183813d83116108b7575b6108948183611255565b810103126108b3576000805160206133d8833981519152925190610864565b8380fd5b503d61088a565b513d85823e3d90fd5b6108df919350853d87116103cf576103c08183611255565b913861081e565b86513d89823e3d90fd5b6109079150843d86116103cf576103c08183611255565b38610780565b88513d8b823e3d90fd5b508681813d8311610943575b61092d8183611255565b8101031261093f5761075f9051610730565b8880fd5b503d610923565b6109619150823d84116103cf576103c08183611255565b3861070e565b8651631815312560e11b81528590fd5b61098f919350863d88116103cf576103c08183611255565b91386106da565b87513d8a823e3d90fd5b6109b8919350863d88116103cf576103c08183611255565b91386106a3565b845163ea8e4eb560e01b81528390fd5b90508481813d8311610a01575b6109e68183611255565b810103126109fd576109f7906112b9565b3861067a565b8680fd5b503d6109dc565b50503461016957602090610a24610a1e3661107d565b9061197b565b9051908152f35b5050346101695760203660031901126101695760209181906001600160a01b03610a5361104c565b16815280845220549051908152f35b9050346104285782600319360112610428578151633a34e39960e11b81526020916001600160a01b0391838183817f000000000000000000000000000000000000000000000000000000000000000087165afa8015610b6157849283928892610b42575b508651948593849263ec697e1360e01b845283015281610ae8602482016110cd565b0392165afa918215610b3557610b1593508492610b18575b505061075a610b0e82612833565b9182612b3f565b80f35b610b2e9250803d106103cf576103c08183611255565b3880610b00565b50505051903d90823e3d90fd5b610b5a919250833d85116103cf576103c08183611255565b9038610ac6565b85513d88823e3d90fd5b505034610169578160031936011261016957602090610a246118b1565b50503461016957816003193601126101695780516105879161057d82610bad816110cd565b0383611255565b505034610169578160031936011261016957602090610a246117d1565b5050346101695781600319360112610169576020905160128152f35b91905034610428576020366003190112610428578135918215158093036108b3578151638da5cb5b60e01b81526001600160a01b0360208284817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610cea578692610cc9575b5033911603610cbb57600754908360ff8316151514610cad575060ff191660ff831617600755519081527f40db37ff5c0bdc2c427fbb2078c8f24afea940abac0e3c23bb4ea3bf2da2b21290602090a180f35b825163fbbfd28f60e01b8152fd5b90516330cd747160e01b8152fd5b610ce391925060203d6020116103cf576103c08183611255565b9038610c5a565b84513d88823e3d90fd5b9050823461039357606036600319011261039357610d1061104c565b610d18611067565b916044359360018060a01b038316808352600160205286832033845260205286832054916000198303610d54575b6020886101f3898989612755565b868310610dbc578115610da5573315610d8e575082526001602090815286832033845281529186902090859003905582906101f387610d46565b8751634a1406b160e11b8152908101849052602490fd5b875163e602df0560e01b8152908101849052602490fd5b8751637dc7a0d960e11b8152339181019182526020820193909352604081018790528291506060010390fd5b505034610169578160031936011261016957602090610e056117d1565b15159051908152f35b505034610169578160031936011261016957602090517f000000000000000000000000000000000000000000000000000000000000000015158152f35b50503461016957602090610a24610e613661107d565b906112c6565b5050346101695781600319360112610169576020906002549051908152f35b905034610428578160031936011261042857610ea061104c565b602435903315610f19576001600160a01b0316918215610f0257508083602095338152600187528181208582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8351634a1406b160e11b8152908101859052602490fd5b835163e602df0560e01b8152808401869052602490fd5b8390853461039357806003193601126103935760035481610f5082611093565b80855291602091600191828116908115610fd65750600114610f7e575b610587868861057d82890383611255565b9350600384527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b838510610fc35750505050810160200161057d8261058786610f6d565b8054868601840152938201938101610fa6565b90506105879795508693506020925061057d94915060ff191682840152151560051b820101929486610f6d565b6020808252825181830181905290939260005b82811061103857505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501611016565b600435906001600160a01b038216820361106257565b600080fd5b602435906001600160a01b038216820361106257565b6040906003190112611062576004359060243590565b90600182811c921680156110c3575b60208310146110ad57565b634e487b7160e01b600052602260045260246000fd5b91607f16916110a2565b600654600092916110dd82611093565b8082529160209060019081811690811561115c5750600114611100575b50505050565b9293945060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f926000935b8585106111495750505060209250010190388080806110fa565b805485850184015293820193810161112f565b92505050602093945060ff929192191683830152151560051b010190388080806110fa565b6006546000929161119182611093565b8082529160209060019081811690811561115c57506001146111b35750505050565b9293945060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f926000935b8585106111fc5750505060209250010190388080806110fa565b80548585018401529382019381016111e2565b67ffffffffffffffff811161122357604052565b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761122357604052565b90601f8019910116810190811067ffffffffffffffff82111761122357604052565b9081602091031261106257516001600160a01b03811681036110625790565b919082039182116112a357565b634e487b7160e01b600052601160045260246000fd5b5190811515820361106257565b80156117ca5760ff600754166117b8576112de6117d1565b156117a65760408051633a34e39960e11b80825292919060209060046001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169084848481855afa93841561162757600094611787575b5085519763ec697e1360e01b8952858960249682878301528185816113628b8201611181565b0392165afa98891561177c5760009961175d575b5061138089611e96565b881161174d5761138f89612049565b865181815286818681875afa908115611667578360a48c828d958d95600091611730575b508551968795869463062f69dd60e51b8652168c8501527f00000000000000000000000000000000000000000000000000000000000000008d85015260448401527f00000000000000000000000000000000000000000000000000000000000000001515606484015260016084840152165afa8015611667576000916000916116f5575b506114418b612156565b91600091156116b35761145591508a611296565b670de0b6b3a76400009081810291818304149015171561169f579061147991612293565b995b8a1061168f57865163cdf456e160e01b815286818681875afa908115611667576114dd84928992600091611672575b508a516323b872dd60e01b815233898201908152306020820152604081018e905290948593849260009291849160600190565b0393165af180156116675790879291611632575b508488518095819382525afa91821561162757906115529291600092611608575b50865162343d1360e01b878201526001600160a01b038a16868201908152602081018a90529092906107f49084906040015b03601f198101855284611255565b5033156115f457505090847f25b428dfde728ccfaddad7e29e4ac23c24ed7fd1a6e3e3f91894a9a073f5dfff9261158b8260025461255a565b600255336000526000815282600020828154019055825182815260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef833393a382519485528401523392a26115e0816122b3565b6115e8575090565b6115f190612567565b90565b600084519163ec442f0560e01b8352820152fd5b611620919250863d88116103cf576103c08183611255565b9038611512565b86513d6000823e3d90fd5b9182813d8311611660575b6116478183611255565b810103126110625761165987926112b9565b50386114f1565b503d61163d565b88513d6000823e3d90fd5b6116899150833d85116103cf576103c08183611255565b386114aa565b8651632ca2f52b60e11b81528490fd5b86601187634e487b7160e01b600052526000fd5b50670de0b6b3a76400008a0290670de0b6b3a763ffff198b8304016116e35750906116dd91612293565b9961147b565b634e487b7160e01b8152601187528790fd5b809250898092503d8311611729575b61170e8183611255565b810103126110625761172387825192016112b9565b38611437565b503d611704565b61174791508d803d106103cf576103c08183611255565b386113b3565b8651632795088960e11b81528490fd5b611775919950863d88116103cf576103c08183611255565b9738611376565b87513d6000823e3d90fd5b61179f919450853d87116103cf576103c08183611255565b923861133c565b604051632e8acb0d60e01b8152600490fd5b6040516313d0ff5960e31b8152600490fd5b5050600090565b604051633a34e39960e11b81526020906001600160a01b039082816004817f000000000000000000000000000000000000000000000000000000000000000086165afa918215611886578391600093611892575b506040519283809263ec697e1360e01b82528460048301528161184a60248201611181565b0392165afa908115611886576115f192600092611869575b5050612156565b61187f9250803d106103cf576103c08183611255565b3880611862565b6040513d6000823e3d90fd5b6118aa919350823d84116103cf576103c08183611255565b9138611825565b60405163e9b14a6960e01b81526020906001600160a01b039082816004817f000000000000000000000000000000000000000000000000000000000000000086165afa801561188657839160009161195e575b50602460405180948193632f5a221b60e01b8352306004840152165afa9182156118865760009261193457505090565b90809250813d8311611957575b61194b8183611255565b81010312611062575190565b503d611941565b6119759150823d84116103cf576103c08183611255565b38611904565b9081156117ca5760408051633a34e39960e11b80825293909260209291906004906001600160a01b03907f000000000000000000000000000000000000000000000000000000000000000082169086888581855afa97881561162757600098611e77575b50868651809963ec697e1360e01b82528287830152818681611a0360248201611181565b0392165afa97881561162757600098611e58575b50611a2188612049565b670de0b6b3a76400009081611a3e611a388b612156565b88612280565b0491611a498a611e96565b8311611e485787519a8b52888b8781875afa9a8b156116675760009b611e23575b5090849291888b857f00000000000000000000000000000000000000000000000000000000000000009e8f845198899463062f69dd60e51b8652168c85015260248401528660448401527f000000000000000000000000000000000000000000000000000000000000000015156064840152608483016000905216815a9160a492fa9b8c15611e185760009460009d611ddb575b50895163e9b14a6960e01b81528b818a818a5afa908115611db35788918d91600091611dbe575b508a8d518094819363458f581560e01b8352165afa908115611db3578390600092611d7f575b50611b59611b5f9387612280565b04612280565b0492611b6b8484611296565b9b611d6e575b508a10611d5e5790611b8689611b8b93612b3f565b612d93565b3315611d475733600052600086528460002054848110611d1b5783929185889233600052600084520387600020558560025403600255600087518781527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef843392a3865163cdf456e160e01b815294859182905afa928315611d10579286928992611c47979695600093611cee575b50865163a9059cbb60e01b8152339281019283526020830194909452929687938492600092849160400190565b0393165af18015611ce357611c8f575b7ff3a670cd3af7d64b488926880889d08a8585a138ff455227af6737339a1ec26292508151938685528401523392a26115e0816122b3565b8383813d8311611cdc575b611ca48183611255565b8101031261106257611cd67ff3a670cd3af7d64b488926880889d08a8585a138ff455227af6737339a1ec262936112b9565b50611c57565b503d611c9a565b82513d6000823e3d90fd5b6000919350611d0990863d88116103cf576103c08183611255565b9290611c1a565b85513d6000823e3d90fd5b855163391434e360e21b8152338186019081526020810192909252604082018690529081906060010390fd5b8451634b637e8f60e11b8152600081850152602490fd5b8651632ca2f52b60e11b81528590fd5b611d78919b611296565b9938611b71565b809392508d8092503d8311611dac575b611d998183611255565b8101031261106257905182611b59611b4b565b503d611d8f565b8b513d6000823e3d90fd5b611dd59150823d84116103cf576103c08183611255565b38611b25565b8a80929e508196503d8311611e11575b611df58183611255565b8101031261106257611e0a8a855195016112b9565b9b38611afe565b503d611deb565b89513d6000823e3d90fd5b859392919b50611e3f908a3d8c116103cf576103c08183611255565b9a909192611a6a565b8751632795088960e11b81528690fd5b611e70919850873d89116103cf576103c08183611255565b9638611a17565b611e8f919850873d89116103cf576103c08183611255565b96386119df565b60408051633a34e39960e11b81529192916001600160a01b03906020907f00000000000000000000000000000000000000000000000000000000000000008316908281600481855afa908115611d10579683918596979860009161202c575b5087518097818094635317f10960e01b82528b600483015282611f1a60448401611181565b911660248301520392165afa938415611d1057600094611ffd575b508160049186519283809263e9b14a6960e01b82525afa908115611d1057908291600091611fe0575b50600486518095819363dd7090f760e01b8352165afa938415611fd65750600093611fa6575b5050670de0b6b3a76400009182038281116112a357611fa291612280565b0490565b9080929350813d8311611fcf575b611fbe8183611255565b810103126110625751903880611f84565b503d611fb4565b513d6000823e3d90fd5b611ff79150823d84116103cf576103c08183611255565b38611f5e565b9093508181813d8311612025575b6120158183611255565b8101031261106257519281611f35565b503d61200b565b6120439150833d85116103cf576103c08183611255565b38611ef5565b604051633a34e39960e11b81526020916001600160a01b039183816004817f000000000000000000000000000000000000000000000000000000000000000087165afa80156118865784926120d392600092612137575b5060405163890914cf60e01b81526001600160a01b03909116600482015230602482015293849283919082906044820190565b0392165afa91821561188657600092612101575b50506120ef57565b60405163609a5b9960e11b8152600490fd5b90809250813d8311612130575b6121188183611255565b8101031261106257612129906112b9565b38806120e7565b503d61210e565b61214f919250843d86116103cf576103c08183611255565b90386120a0565b600254801561227257604051633a34e39960e11b81526020926001600160a01b039184816004817f000000000000000000000000000000000000000000000000000000000000000087165afa80156118865785926121e992600092612253575b50604051630b22635560e31b81526001600160a01b03909116600482015230602482015293849283919082906044820190565b0392165afa92831561188657600093612222575b5050670de0b6b3a7640000918281029281840414901517156112a3576115f191612293565b8181949293943d831161224c575b61223a8183611255565b810103126103935750519038806121fd565b503d612230565b61226b919250843d86116103cf576103c08183611255565b90386121b6565b5050670de0b6b3a764000090565b818102929181159184041417156112a357565b811561229d570490565b634e487b7160e01b600052601260045260246000fd5b60408051633a34e39960e11b808252919260209290916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169260049286818581885afa9081156116675760009161253d575b508751632e86556160e21b81526001600160a01b0387168582019081523060208201529091889183919082900360400190829087165afa90811561166757600091612510575b50156124b257865181815286818581885afa908115611667576000916124f3575b50875163890914cf60e01b81526001600160a01b0387168582019081523060208201529091889183919082900360400190829087165afa908115611667576000916124be575b506124b25785908388518096819382525afa928315611627579185949291612441969492600093612493575b5087516303bf450b60e01b81526001600160a01b039094169184019182523060208301527f000000000000000000000000000000000000000000000000000000000000000060408301529295869384929091839160600190565b0392165afa928315611fd65750600092612465575b50506124606118b1565b111590565b90809250813d831161248c575b61247c8183611255565b8101031261106257513880612456565b503d612472565b6124ab919350853d87116103cf576103c08183611255565b91386123e7565b50505050505050600090565b90508681813d83116124ec575b6124d58183611255565b81010312611062576124e6906112b9565b386123bb565b503d6124cb565b61250a9150873d89116103cf576103c08183611255565b38612375565b90508681813d8311612536575b6125278183611255565b81010312611062575138612354565b503d61251d565b6125549150873d89116103cf576103c08183611255565b3861230e565b919082018092116112a357565b61257d61257382612833565b61075a8382612b3f565b60408051633a34e39960e11b8082526001600160a01b0393602093927f0000000000000000000000000000000000000000000000000000000000000000861692908581600481875afa908115611d105786929161265091600091612738575b50888751916319d04c0760e11b8684015281871660248401527f000000000000000000000000000000000000000000000000000000000000000060448401527f000000000000000000000000000000000000000000000000000000000000000015156064840152606483526107f483611239565b50600485518095819382525afa91821561272d57916126a591859360009261270e575b508451630707bdd360e11b81526001600160a01b03909116600482015230602482015295869283919082906044820190565b0392165afa908115611fd6576000916126d1575b6000805160206133d8833981519152935051908152a1565b90508183813d8311612707575b6126e88183611255565b81010312611062576000805160206133d88339815191529251906126b9565b503d6126de565b612726919250843d86116103cf576103c08183611255565b9038612673565b83513d6000823e3d90fd5b61274f9150843d86116103cf576103c08183611255565b386125dc565b916001600160a01b0380841692831561281a571692831561280157600090838252816020526040822054908382106127cf575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b60055415612b35576040805163e9b14a6960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116936020926004929190848185818a5afa908115611627578392918691600091612b18575b50858851809581936332d514d960e21b8352165afa91821561162757600092612ae9575b508551633a34e39960e11b815290858286818b5afa91821561177c57849392879261291d92600092612aca575b50895163756a2b2960e01b81526001600160a01b039091168882019081523060208201529095869384928391604090910190565b0392165afa91821561162757600092612a99575b5061295f61294c92670de0b6b3a76400009384938492612280565b0461295960055442611296565b90612280565b04818102918183041490151715612a84576301e133809004948515612a7957838391865192838092635ebaf1db60e01b82525afa908115611d1057600091612a5c575b5084516340bd8e6960e11b815293911681848481845afa938415611d1057600094612a2d575b50819085519384809263149ee6a560e01b82525afa938415611fd657506000936129fd575b5050146129f75790565b50600090565b9080929350813d8311612a26575b612a158183611255565b8101031261106257519038806129ed565b503d612a0b565b9093508181813d8311612a55575b612a458183611255565b81010312611062575192816129c8565b503d612a3b565b612a739150843d86116103cf576103c08183611255565b386129a2565b505050505050600090565b601183634e487b7160e01b6000525260246000fd5b91508482813d8311612ac3575b612ab08183611255565b810103126110625790519061295f612931565b503d612aa6565b612ae2919250843d86116103cf576103c08183611255565b90386128e9565b9091508481813d8311612b11575b612b018183611255565b81010312611062575190386128bc565b503d612af7565b612b2f9150823d84116103cf576103c08183611255565b38612898565b5042600555600090565b604051633a34e39960e11b8152916001600160a01b03906020846004817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561188657612bca94600092612bcd575b50604051633a5271f960e01b60208201526001600160a01b03909116602482015260448101939093526107f48360648101611544565b50565b6107f4919250612beb9060203d6020116103cf576103c08183611255565b9190612b94565b908115612d8f5760408051635ebaf1db60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811694916020919082816004818a5afa908115611d1057600496978491600093612d70575b50865163cdf456e160e01b815297889182905afa958615611d1057600096612d46575b50845163095ea7b360e01b81529082166001600160a01b03811660048301526024820185905295909291829184916044918391600091165af18015612d3b57612d07575b5050823b1561106257600092602484928451958693849263decb7bcb60e01b845260048401525af1908115611fd65750612cf8575b5042600555565b612d019061120f565b38612cf1565b81813d8311612d34575b612d1b8183611255565b8101031261106257612d2c906112b9565b503880612cbc565b503d612d11565b84513d6000823e3d90fd5b839283929750612d6581926000963d86116103cf576103c08183611255565b979250929350612c78565b612d88919350823d84116103cf576103c08183611255565b9138612c55565b9050565b6040805163d3dc753960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116936004929091602090818386818a5afa928315611627576000936131a6575b50855163cdf456e160e01b8152828187818b5afa90811561177c5782918291600091613189575b501693169086519163095ea7b360e01b92838152848180612e4b8a868d840160209093929193604081019460018060a01b031681520152565b038160008a5af18015611e1857908591613151575b5060009160448a51809481936353617a2d60e01b83528b8d8401523360248401525af190811561166757600091613124575b508751635ebaf1db60e01b815295848789818d5afa968715611e18576000976130ff575b5090612ec191611296565b9485156130f457169686516340bd8e6960e11b8152838188818c5afa908115611667576000916130c7575b50875163149ee6a560e01b815290848289818d5afa918215611e1857600092613098575b5014612fc6575085519081526001600160a01b03871685820190815260208101859052909282918491908290600090829060400103925af18015611d1057612f92575b5050833b15611062576024600092838551968794859363decb7bcb60e01b85528401525af1908115611fd65750612f875750565b612f909061120f565b565b81813d8311612fbf575b612fa68183611255565b8101031261106257612fb7906112b9565b503880612f53565b503d612f9c565b8683979998508694959693925051938480926361d027b360e01b82525afa91821561177c579185939161303697989593600092613076575b50855163a9059cbb60e01b81526001600160a01b03909216908201908152602081019390935295869283916000918391604090910190565b03925af1908115611fd6575061304a575050565b81813d831161306f575b61305e8183611255565b8101031261106257612bca906112b9565b503d613054565b600091925061309190863d88116103cf576103c08183611255565b9190612ffe565b9091508481813d83116130c0575b6130b08183611255565b8101031261106257519038612f10565b503d6130a6565b90508381813d83116130ed575b6130de8183611255565b81010312611062575138612eec565b503d6130d4565b505050505050505050565b612ec19291975061311c90863d88116103cf576103c08183611255565b969091612eb6565b90508381813d831161314a575b61313b8183611255565b81010312611062575138612e92565b503d613131565b9081813d8311613182575b6131668183611255565b810103126110625760009161317b86926112b9565b5091612e60565b503d61315c565b6131a09150853d87116103cf576103c08183611255565b38612e12565b8281819593953d83116131d9575b6131be8183611255565b81010312610169575190838216820361039357509138612deb565b503d6131b4565b91906000808260208294519101865af43d15613247573d9367ffffffffffffffff8511613233576115f19394604051906132246020601f19601f8401160183611255565b8152809360203d92013e613374565b634e487b7160e01b83526041600452602483fd5b6115f192939150606091613374565b908115612d8f5760408051633c9c616560e01b815290926020916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691908482600481865afa91821561177c576004938691600094613355575b50885163cdf456e160e01b815294859182905afa92831561177c579185939161331e97989593600093613333575b50855163a9059cbb60e01b81526001600160a01b039092166004830152602482019390935295869283916000919083906044820190565b0393165af1908115611fd6575061304a575050565b600091935061334e90863d88116103cf576103c08183611255565b92906132e7565b61336d919450823d84116103cf576103c08183611255565b92386132b9565b9061339b575080511561338957805190602001fd5b60405163d6bda27560e01b8152600490fd5b815115806133ce575b6133ac575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156133a456fec306af072396b02bf3a9782c10065cc7ff4aa842934a43f0b76f997b291237c8a2646970667358221220737c6a33c29a811c1c1b114975c89f51ab89006c63bc9e39864e6eaac42f0e9e64736f6c6343000818003300000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000baa87ecc5dd76526b51ab7fd2d0c814eb967e2e2000000000000000000000000000000000000000000000000000000000000000b4f502035782053686f727400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044f5035530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024f50000000000000000000000000000000000000000000000000000000000000