0 txs
0 calls
constructor
constructor()
functions
A_precise
viewfunction A_precise() view returns (uint256)
A
viewfunction A() view returns (uint256)
admin_balances
viewfunction admin_balances(uint256 i) view returns (uint256)
admin_fee
viewfunction admin_fee() view returns (uint256)
allowance
viewfunction allowance(address arg0, address arg1) view returns (uint256)
balanceOf
viewfunction balanceOf(address arg0) view returns (uint256)
balances
viewfunction balances(uint256 arg0) view returns (uint256)
calc_token_amount
viewfunction calc_token_amount(uint256[2] _balances, uint256[2] _amounts, bool _is_deposit) view returns (uint256)
calc_withdraw_one_coin
viewfunction calc_withdraw_one_coin(uint256[2] _balances, uint256 _burn_amount, int128 i) view returns (uint256)
coins
viewfunction coins(uint256 arg0) view returns (address)
decimals
viewfunction decimals() view returns (uint256)
fee
viewfunction fee() view returns (uint256)
future_A_time
viewfunction future_A_time() view returns (uint256)
future_A
viewfunction future_A() view returns (uint256)
get_dy
viewfunction get_dy(uint256[2] _balances, int128 i, int128 j, uint256 dx) view returns (uint256)
get_virtual_price
viewfunction get_virtual_price() view returns (uint256)
initial_A_time
viewfunction initial_A_time() view returns (uint256)
initial_A
viewfunction initial_A() view returns (uint256)
name
viewfunction name() view returns (string)
rewards_receiver
viewfunction rewards_receiver() view returns (address)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
add_liquidity
nonpayablefunction add_liquidity(uint256[2] _amounts, uint256 _min_mint_amount, address _receiver) returns (uint256)
add_liquidity
nonpayablefunction add_liquidity(uint256[2] _amounts, uint256 _min_mint_amount) returns (uint256)
approve
nonpayablefunction approve(address _spender, uint256 _value) returns (bool)
exchange_underlying
nonpayablefunction exchange_underlying(int128 i, int128 j, uint256 _dx, uint256 _min_dy, address _receiver) returns (uint256)
exchange_underlying
nonpayablefunction exchange_underlying(int128 i, int128 j, uint256 _dx, uint256 _min_dy) returns (uint256)
exchange
nonpayablefunction exchange(int128 i, int128 j, uint256 _dx, uint256 _min_dy, address _receiver) returns (uint256)
exchange
nonpayablefunction exchange(int128 i, int128 j, uint256 _dx, uint256 _min_dy) returns (uint256)
initialize
nonpayablefunction initialize(string _name, string _symbol, address _coin, uint256 _rate_multiplier, uint256 _A, uint256 _fee)
ramp_A
nonpayablefunction ramp_A(uint256 _future_A, uint256 _future_time)
remove_liquidity_imbalance
nonpayablefunction remove_liquidity_imbalance(uint256[2] _amounts, uint256 _max_burn_amount, address _receiver) returns (uint256)
remove_liquidity_imbalance
nonpayablefunction remove_liquidity_imbalance(uint256[2] _amounts, uint256 _max_burn_amount) returns (uint256)
remove_liquidity
nonpayablefunction remove_liquidity(uint256 _burn_amount, uint256[2] _min_amounts, address _receiver) returns (uint256[2])
remove_liquidity
nonpayablefunction remove_liquidity(uint256 _burn_amount, uint256[2] _min_amounts) returns (uint256[2])
stop_ramp_A
nonpayablefunction stop_ramp_A()
transfer
nonpayablefunction transfer(address _to, uint256 _value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address _from, address _to, uint256 _value) returns (bool)
withdraw_admin_fees
nonpayablefunction withdraw_admin_fees()
events
AddLiquidity
event AddLiquidity(address indexed provider, uint256[2] token_amounts, uint256[2] fees, uint256 invariant, uint256 token_supply)
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
RampA
event RampA(uint256 old_A, uint256 new_A, uint256 initial_time, uint256 future_time)
RemoveLiquidity
event RemoveLiquidity(address indexed provider, uint256[2] token_amounts, uint256[2] fees, uint256 token_supply)
RemoveLiquidityImbalance
event RemoveLiquidityImbalance(address indexed provider, uint256[2] token_amounts, uint256[2] fees, uint256 invariant, uint256 token_supply)
RemoveLiquidityOne
event RemoveLiquidityOne(address indexed provider, uint256 token_amount, uint256 coin_amount, uint256 token_supply)
StopRampA
event StopRampA(uint256 A, uint256 t)
TokenExchange
event TokenExchange(address indexed buyer, int128 sold_id, uint256 tokens_sold, int128 bought_id, uint256 tokens_bought)
TokenExchangeUnderlying
event TokenExchangeUnderlying(address indexed buyer, int128 sold_id, uint256 tokens_sold, int128 bought_id, uint256 tokens_bought)
Transfer
event Transfer(address indexed sender, address indexed receiver, uint256 value)
errors
No errors.
creation bytecode
0x617a69600a556152f356600436101561000d57613ebe565b600035601c52600051346152e4576398094be081141561050457604060043560040161014037602060043560040135116152e457602a6024356004016101a037600a60243560040135116152e45760443560a01c6152e457600a546152e45760843560648082028215828483041417156152e457809050905090506102005260066044358155737f90122bf0700f9e7e1f688fe926940e8839f353600182015550606435600f5561020051600b5561020051600c5560a435600a55336005556000601f610220527f43757276652e666920466163746f727920555344204d657461706f6f6c3a200061024052610220601f8060208461028001018260208501600060045af150508051820191505061014060208060208461028001018260208501600060045af150508051820191505080610280526102809050806010602082510161012060006003818352015b8261012051602002111561016e57610190565b61012051602002850151610120518501555b815160010180835281141561015b575b50505050505060006101a0600a8060208461028001018260208501600060045af15050805182019150506006610220527f334352562d6600000000000000000000000000000000000000000000000000006102405261022060068060208461028001018260208501600060045af150508051820191505080610280526102809050806014602082510161012060006002818352015b826101205160200211156102385761025a565b61012051602002850151610120518501555b8151600101808352811415610225575b5050505050507f602d3d8160093d39f3363d3d373d3d3d363d7300000000000000000000000000610240527f64448b78561690b70e17cbe8029a3e5c1bb7136e000000000000000000000000610253527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006102675260366102406000f061022052610220513b156152e45760006000602463c4d66de86102405273bf7e49483881c76487b0989cd7d9a8239b20ca416102605261025c6000610220515af1156152e45761022051601a5573bf7e49483881c76487b0989cd7d9a8239b20ca413b156152e45760006000602463bdf9811661024052610220516102605261025c600073bf7e49483881c76487b0989cd7d9a8239b20ca415af1156152e45773ff970a61a04b1ca14834a43f5de4533ebddb5cc86102805273fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb96102a05261026060006002818352015b60206102605102610280015161024052610240513b156152e45760006000604463095ea7b36102c052737f90122bf0700f9e7e1f688fe926940e8839f3536102e0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610300526102dc6000610240515af1156152e4575b81516001018083528114156103b5575b5050737f90122bf0700f9e7e1f688fe926940e8839f3533b156152e45760006000604463095ea7b36102405273bf7e49483881c76487b0989cd7d9a8239b20ca41610260527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102805261025c6000737f90122bf0700f9e7e1f688fe926940e8839f3535af1156152e4573060007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610240808080600081525050602090509050610240a3005b63313ce56781141561051b57601260005260206000f35b63a9059cbb8114156105675760043560a01c6152e4573361014052600435610160526024356101805261018051610160516101405160065801613ec4565b600050600160005260206000f35b6323b872dd81141561063e5760043560a01c6152e45760243560a01c6152e45760043561014052602435610160526044356101805261018051610160516101405160065801613ec4565b600050601860043560e05260c052604060c0203360e05260c052604060c02054610140527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61014051181561063357610140516044358082106152e45780820390509050601860043560e05260c052604060c0203360e05260c052604060c020555b600160005260206000f35b63095ea7b38114156106bb5760043560a01c6152e45760243560183360e05260c052604060c02060043560e05260c052604060c02055600435337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92561014080808060243581525050602090509050610140a3600160005260206000f35b63fee3f7f98114156106d65764012a05f20060005260206000f35b63f446c1d08114156107055760065801613fd6565b610140526101405160648082049050905060005260206000f35b6376a2f0f081141561072b5760065801613fd6565b610140526101405160005260206000f35b63bb7b8b808114156108ca576101405160065801613fd6565b610160526101405261016051610140526020610200600463bb7b8b806101a0526101bc737f90122bf0700f9e7e1f688fe926940e8839f3535afa156152e457601f3d11156152e4576000506102005161022052600f546101605261022051610180526101405161016051610180516101a0516101c051610160516101e05261018051610200526008805461022052600181015461024052506102405161022051610200516101e0516006580161412e565b6102a0526102c0526101c0526101a0526101805261016052610140526102a080516101a05280602001516101c052506101405161016051610180516101a0516101c0516101e0516101a051610200526101c05161022052610140516102405261024051610220516102005160065801614207565b6102a0526101e0526101c0526101a0526101805261016052610140526102a0516101e0526101e051670de0b6b3a76400008082028215828483041417156152e457809050905090506019548080156152e45782049050905060005260206000f35b632e28a90e811415610b885760843560011c6152e4576101405160065801613fd6565b610160526101405261016051610140526020610200600463bb7b8b806101a0526101bc737f90122bf0700f9e7e1f688fe926940e8839f3535afa156152e457601f3d11156152e4576000506102005161022052600f54610160526102205161018052600480356101a05280602001356101c052506101405161016051610180516101a0516101c0516101e051610160516102005261018051610220526101a051610240526101c0516102605261014051610280526102805161026051610240516102205161020051600658016144b1565b6102e0526101e0526101c0526101a0526101805261016052610140526102e0516101e05261020060006002818352015b60446102005160028110156152e45760200201356102205260843515610a40576101a06102005160028110156152e4576020020180516102205181818301106152e45780820190509050815250610a6c565b6101a06102005160028110156152e457602002018051610220518082106152e457808203905090508152505b5b81516001018083528114156109ee575b50506101405161016051610180516101a0516101c0516101e05161020051610160516102205261018051610240526101a051610260526101c05161028052610140516102a0526102a05161028051610260516102405161022051600658016144b1565b61030052610200526101e0526101c0526101a052610180526101605261014052610300516102005260006102205260843515610b3557610200516101e0518082106152e4578082039050905061022052610b50565b6101e051610200518082106152e45780820390509050610220525b610220516019548082028215828483041417156152e457809050905090506101e0518080156152e45782049050905060005260206000f35b630b4c7e4d811415610b9e573361014052610bc9565b630c3e4b54811415610bc45760643560a01c6152e4576020606461014037600050610bc9565b6113d8565b6000546152e4576001600055610140516101605160065801613fd6565b61018052610160526101405261018051610160526020610220600463bb7b8b806101c0526101dc737f90122bf0700f9e7e1f688fe926940e8839f3535afa156152e457601f3d11156152e4576000506102205161024052600f5461018052610240516101a052600880546101c05260018101546101e052506101405161016051610180516101a0516101c0516101e0516102005161018051610220526101a051610240526101c051610260526101e05161028052610160516102a0526102a05161028051610260516102405161022051600658016144b1565b61030052610200526101e0526101c0526101a05261018052610160526101405261030051610200526101c051610220526101e051610240526019546102605261028060006002818352015b60046102805160028110156152e45760200201356102a0526102a051610d3b5760006102605111156152e457610e60565b6323b872dd61032452600461034480808033815250506020810190508080308152505060208101905080806102a0518152505060609050905001610320526103208051602001806103c08284600060045af1156152e457505060206104806103c0516103e0600060016102805160028110156152e45702600601545af1156152e45760203d80821115610dce5780610dd0565b815b90509050610460526104608051602001806102c08284600060045af1156152e457505060006102c0511115610e32576102c080602001516000825180602090136152e457809190126152e457806020036101000a8204905090509050156152e4575b6102206102805160028110156152e4576020020180516102a05181818301106152e457808201905090508152505b5b8151600101808352811415610d0a575b50506101405161016051610180516101a0516101c0516101e0516102005161022051610240516102605161028051610180516102a0526101a0516102c052610220516102e0526102405161030052610160516103205261032051610300516102e0516102c0516102a051600658016144b1565b6103805261028052610260526102405261022052610200526101e0526101c0526101a0526101805261016052610140526103805161028052610200516102805111156152e4576060366102a037600061026051111561120257600a5460028082028215828483041417156152e457809050905090506004808204905090506103005261032060006002818352015b610280516101c06103205160028110156152e45760200201518082028215828483041417156152e45780905090509050610200518080156152e457820490509050610340526000610360526102206103205160028110156152e457602002015161038052610380516103405111156110035761034051610380518082106152e457808203905090506103605261101e565b61038051610340518082106152e45780820390509050610360525b61030051610360518082028215828483041417156152e457809050905090506402540be400808204905090506102a06103205160028110156152e4576020020152610380516102a06103205160028110156152e457602002015164012a05f2008082028215828483041417156152e457809050905090506402540be400808204905090508082106152e4578082039050905060016103205160028110156152e45702600801556102206103205160028110156152e4576020020180516102a06103205160028110156152e45760200201518082106152e457808203905090508152505b8151600101808352811415610f72575b5050610140610340525b6103405151602061034051016103405261034061034051101561113d5761111b565b61018051610360526101a05161038052610220516103a052610240516103c052610160516103e0526103e0516103c0516103a0516103805161036051600658016144b1565b61044052610320610340525b6103405152602061034051036103405261014061034051106111af5761118e565b61044051610320526102605161032051610200518082106152e457808203905090508082028215828483041417156152e45780905090509050610200518080156152e4578204905090506102e05261121d565b600861022051815561024051600182015550610280516102e0525b6044356102e051106152e45773bf7e49483881c76487b0989cd7d9a8239b20ca413b156152e45760006000602463b6b55f25610300526024356103205261031c600073bf7e49483881c76487b0989cd7d9a8239b20ca415af1156152e457601a543b156152e45760006000602463026c334961030052610140516103205261031c6000601a545af1156152e45761026080516102e05181818301106152e4578082019050905081525060176101405160e05260c052604060c02080546102e05181818301106152e45780820190509050815550610260516019556101405160007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6103008080806102e05181525050602090509050610300a3337f26f55a85081d24974e85c6c00045d0f0453991e95873f52bff0d21af4079a7686103008080808080600435815250506020810190508080602435815250505050604081019050808080806102a0518152505060208101905080806102c051815250505050604081019050808061028051815250506020810190508080610260518152505060c090509050610300a26102e051600052600060005560206000f35b631b9c7f2081141561167e5760443580607f1d8160801d14156152e4578090505060643580607f1d8160801d14156152e4578090505060206101e0600463bb7b8b806101805261019c737f90122bf0700f9e7e1f688fe926940e8839f3535afa156152e457601f3d11156152e4576000506101e05161020052600f546101405261020051610160526101405161016051610180516101a051610140516101c052610160516101e05260048035610200528060200135610220525061022051610200516101e0516101c0516006580161412e565b610280526102a0526101a05261018052610160526101405261028080516101805280602001516101a0525061018060443560028110156152e457602002015160843561014060443560028110156152e45760200201518082028215828483041417156152e45780905090509050670de0b6b3a76400008082049050905081818301106152e457808201905090506101c0526101405161016051610180516101a0516101c0516101e05160406044610200376101c0516102405261018051610260526101a051610280526102805161026051610240516102205161020051600658016145de565b6102e0526101e0526101c0526101a0526101805261016052610140526102e0516101e05261018060643560028110156152e45760200201516101e0518082106152e4578082039050905060018082106152e4578082039050905061020052600a54610200518082028215828483041417156152e457809050905090506402540be400808204905090506102205261020051610220518082106152e45780820390509050670de0b6b3a76400008082028215828483041417156152e4578090509050905061014060643560028110156152e45760200201518080156152e45782049050905060005260206000f35b633df021248114156116945733610140526116bf565b63ddc1f59d8114156116ba5760843560a01c6152e45760206084610140376000506116bf565b611dbc565b6001546152e457600160015560043580607f1d8160801d14156152e4578090505060243580607f1d8160801d14156152e457809050506020610200600463bb7b8b806101a0526101bc737f90122bf0700f9e7e1f688fe926940e8839f3535afa156152e457601f3d11156152e4576000506102005161022052600f54610160526102205161018052600880546101a05260018101546101c052506101405161016051610180516101a0516101c0516101e05161020051610160516102205261018051610240526101a051610260526101c05161028052610280516102605161024051610220516006580161412e565b6102e05261030052610200526101e0526101c0526101a0526101805261016052610140526102e080516101e052806020015161020052506101e060043560028110156152e457602002015160443561016060043560028110156152e45760200201518082028215828483041417156152e45780905090509050670de0b6b3a76400008082049050905081818301106152e45780820190509050610220526101405161016051610180516101a0516101c0516101e0516102005161022051610240516040600461026037610220516102a0526101e0516102c052610200516102e0526102e0516102c0516102a0516102805161026051600658016145de565b610340526102405261022052610200526101e0526101c0526101a05261018052610160526101405261034051610240526101e060243560028110156152e4576020020151610240518082106152e4578082039050905060018082106152e457808203905090506102605261026051600a548082028215828483041417156152e457809050905090506402540be400808204905090506102805261026051610280518082106152e45780820390509050670de0b6b3a76400008082028215828483041417156152e4578090509050905061016060243560028110156152e45760200201518080156152e4578204905090506102605260643561026051106152e4576102805164012a05f2008082028215828483041417156152e457809050905090506402540be400808204905090506102a0526102a051670de0b6b3a76400008082028215828483041417156152e4578090509050905061016060243560028110156152e45760200201518080156152e4578204905090506102a0526101a060043560028110156152e457602002015160443581818301106152e45780820190509050600160043560028110156152e45702600801556101a060243560028110156152e4576020020151610260518082106152e457808203905090506102a0518082106152e45780820390509050600160243560028110156152e45702600801556323b872dd61032452600461034480808033815250506020810190508080308152505060208101905080806044358152505060609050905001610320526103208051602001806103c08284600060045af1156152e457505060206104806103c0516103e06000600160043560028110156152e45702600601545af1156152e45760203d80821115611b3d5780611b3f565b815b90509050610460526104608051602001806102c08284600060045af1156152e457505060006102c0511115611ba1576102c080602001516000825180602090136152e457809190126152e457806020036101000a8204905090509050156152e4575b60016004351415611c035773bf7e49483881c76487b0989cd7d9a8239b20ca413b156152e45760006000602463b6b55f25610320526044356103405261033c600073bf7e49483881c76487b0989cd7d9a8239b20ca415af1156152e457611c57565b73bf7e49483881c76487b0989cd7d9a8239b20ca413b156152e457600060006024632e1a7d4d61032052610260516103405261033c600073bf7e49483881c76487b0989cd7d9a8239b20ca415af1156152e4575b63a9059cbb61032452600461034480808061014051815250506020810190508080610260518152505060409050905001610320526103208051602001806103a08284600060045af1156152e457505060206104406103a0516103c06000600160243560028110156152e45702600601545af1156152e45760203d80821115611cdf5780611ce1565b815b90509050610420526104208051602001806102c08284600060045af1156152e457505060006102c0511115611d43576102c080602001516000825180602090136152e457809190126152e457806020036101000a8204905090509050156152e4575b337f8b3e96f2b889fa771c53c981b40daf005f63f637f1869f707052d15a3dd971406103208080806004358152505060208101905080806044358152505060208101905080806024358152505060208101905080806102605181525050608090509050610320a261026051600052600060015560206000f35b63a6417ed6811415611dd2573361014052611dfd565b6344ee1986811415611df85760843560a01c6152e4576020608461014037600050611dfd565b61292c565b6002546152e457600160025560043580607f1d8160801d14156152e4578090505060243580607f1d8160801d14156152e457809050506020610200600463bb7b8b806101a0526101bc737f90122bf0700f9e7e1f688fe926940e8839f3535afa156152e457601f3d11156152e4576000506102005161022052600f54610160526102205161018052600880546101a05260018101546101c052506101405161016051610180516101a0516101c0516101e05161020051610160516102205261018051610240526101a051610260526101c05161028052610280516102605161024051610220516006580161412e565b6102e05261030052610200526101e0526101c0526101a0526101805261016052610140526102e080516101e0528060200151610200525073ff970a61a04b1ca14834a43f5de4533ebddb5cc86102205273fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9610240526101003661026037600435611f705760065461032052611fb1565b600435600180820380607f1d8160801d14156152e457809050905090506102805260016102c0526102206102805160028110156152e4576020020151610320525b602435611fc45760065461034052612005565b602435600180820380607f1d8160801d14156152e457809050905090506102a05260016102e0526102206102a05160028110156152e4576020020151610340525b6323b872dd6103c45260046103e4808080338152505060208101905080803081525050602081019050808060443581525050606090509050016103c0526103c08051602001806104608284600060045af1156152e45750506020610520610460516104806000610320515af1156152e45760203d808211156120875780612089565b815b90509050610500526105008051602001806103608284600060045af1156152e457505060006103605111156120eb5761036080602001516000825180602090136152e457809190126152e457806020036101000a8204905090509050156152e4575b6044356103c052600435612100576001612105565b602435155b5b156126ea5760043561217e576101e060043560028110156152e45760200201516103c05161016060043560028110156152e45760200201518082028215828483041417156152e45780905090509050670de0b6b3a76400008082049050905081818301106152e4578082019050905061030052612329565b6040366103e0376103c0516103e06102805160028110156152e45760200201526007546104205260206104c060246370a0823161044052306104605261045c610420515afa156152e457601f3d11156152e4576000506104c05161030052737f90122bf0700f9e7e1f688fe926940e8839f3533b156152e457600060006064630b4c7e4d610440526103e05161046052610400516104805260006104a05261045c6000737f90122bf0700f9e7e1f688fe926940e8839f3535af1156152e45760206104c060246370a0823161044052306104605261045c610420515afa156152e457601f3d11156152e4576000506104c051610300518082106152e457808203905090506103c0526103c051610180518082028215828483041417156152e45780905090509050670de0b6b3a7640000808204905090506103005261030080516102005181818301106152e4578082019050905081525073bf7e49483881c76487b0989cd7d9a8239b20ca413b156152e45760006000602463b6b55f25610440526103c0516104605261045c600073bf7e49483881c76487b0989cd7d9a8239b20ca415af1156152e4575b610140610400525b6104005151602061040051016104005261040061040051101561235357612331565b6102c051610420526102e0516104405261030051610460526101e05161048052610200516104a0526104a05161048051610460516104405161042051600658016145de565b610500526103e0610400525b6104005152602061040051036104005261014061040051106123c5576123a4565b610500516103e0526101e06102e05160028110156152e45760200201516103e0518082106152e4578082039050905060018082106152e457808203905090506102605261026051600a548082028215828483041417156152e457809050905090506402540be400808204905090506104005261026051610400518082106152e45780820390509050670de0b6b3a76400008082028215828483041417156152e457809050905090506101606102e05160028110156152e45760200201518080156152e457820490509050610260526104005164012a05f2008082028215828483041417156152e457809050905090506402540be400808204905090506104205261042051670de0b6b3a76400008082028215828483041417156152e457809050905090506101606102e05160028110156152e45760200201518080156152e457820490509050610420526101a06102c05160028110156152e45760200201516103c05181818301106152e4578082019050905060016102c05160028110156152e45702600801556101a06102e05160028110156152e4576020020151610260518082106152e45780820390509050610420518082106152e4578082039050905060016102e05160028110156152e4570260080155600060243513156126d95760206104e060246370a0823161046052306104805261047c610340515afa156152e457601f3d11156152e4576000506104e0516104405273bf7e49483881c76487b0989cd7d9a8239b20ca413b156152e457600060006024632e1a7d4d61046052610260516104805261047c600073bf7e49483881c76487b0989cd7d9a8239b20ca415af1156152e457737f90122bf0700f9e7e1f688fe926940e8839f3533b156152e457600060006064631a4d01d26104605261026051610480526102a0516104a05260006104c05261047c6000737f90122bf0700f9e7e1f688fe926940e8839f3535af1156152e45760206104e060246370a0823161046052306104805261047c610340515afa156152e457601f3d11156152e4576000506104e051610440518082106152e45780820390509050610260525b60643561026051106152e4576127d5565b602061046060246370a082316103e05230610400526103fc610340515afa156152e457601f3d11156152e4576000506104605161026052737f90122bf0700f9e7e1f688fe926940e8839f3533b156152e457600060006084633df021246103e05261028051610400526102a051610420526103c05161044052606435610460526103fc6000737f90122bf0700f9e7e1f688fe926940e8839f3535af1156152e457602061046060246370a082316103e05230610400526103fc610340515afa156152e457601f3d11156152e45760005061046051610260518082106152e45780820390509050610260525b63a9059cbb6103e4526004610404808080610140518152505060208101905080806102605181525050604090509050016103e0526103e08051602001806104608284600060045af1156152e45750506020610500610460516104806000610340515af1156152e45760203d8082111561284e5780612850565b815b905090506104e0526104e08051602001806103608284600060045af1156152e457505060006103605111156128b25761036080602001516000825180602090136152e457809190126152e457806020036101000a8204905090509050156152e4575b337fd013ca23e77a65003c2c659c5442c00c805371b7fc1ebd4c206c41d1536bd90b6103e08080806004358152505060208101905080806103c05181525050602081019050808060243581525050602081019050808061026051815250506080905090506103e0a261026051600052600060025560206000f35b635b36389c81141561294257336101405261296d565b633eb1719f8114156129685760643560a01c6152e457602060646101403760005061296d565b612cd3565b6003546152e457600160035560195461016052604036610180376101c060006002818352015b60016101c05160028110156152e45702600801546101e0526101e0516004358082028215828483041417156152e45780905090509050610160518080156152e4578204905090506102005260246101c05160028110156152e457602002013561020051106152e4576101e051610200518082106152e4578082039050905060016101c05160028110156152e4570260080155610200516101806101c05160028110156152e457602002015260016101c0511415612a9e5773bf7e49483881c76487b0989cd7d9a8239b20ca413b156152e457600060006024632e1a7d4d61022052610200516102405261023c600073bf7e49483881c76487b0989cd7d9a8239b20ca415af1156152e4575b63a9059cbb6102845260046102a480808061014051815250506020810190508080610200518152505060409050905001610280526102808051602001806103008284600060045af1156152e457505060206103a061030051610320600060016101c05160028110156152e45702600601545af1156152e45760203d80821115612b275780612b29565b815b90509050610380526103808051602001806102208284600060045af1156152e45750506000610220511115612b8b5761022080602001516000825180602090136152e457809190126152e457806020036101000a8204905090509050156152e4575b5b8151600101808352811415612993575b5050601a543b156152e45760006000602463026c33496101c052336101e0526101dc6000601a545af1156152e45761016080516004358082106152e4578082039050905081525060173360e05260c052604060c02080546004358082106152e45780820390509050815550610160516019556000337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101c0808080600435815250506020905090506101c0a3337f7c363854ccf79623411f8995b362bce5eddff18c927edc6f5dbbb5e05819a82c6101c08080808080610180518152505060208101905080806101a05181525050505060408101905080808080600081525050602081019050808060008152505050506040810190508080610160518152505060a0905090506101c0a260006003556040610180f35b63e3103273811415612ce9573361014052612d14565b6352d2cfdd811415612d0f5760643560a01c6152e4576020606461014037600050612d14565b613504565b6004546152e4576001600455610140516101605160065801613fd6565b61018052610160526101405261018051610160526020610220600463bb7b8b806101c0526101dc737f90122bf0700f9e7e1f688fe926940e8839f3535afa156152e457601f3d11156152e4576000506102205161024052600f5461018052610240516101a052600880546101c05260018101546101e052506101405161016051610180516101a0516101c0516101e0516102005161018051610220526101a051610240526101c051610260526101e05161028052610160516102a0526102a05161028051610260516102405161022051600658016144b1565b61030052610200526101e0526101c0526101a05261018052610160526101405261030051610200526101c051610220526101e0516102405261026060006002818352015b60046102605160028110156152e4576020020135610280526001610260511415612ec65773bf7e49483881c76487b0989cd7d9a8239b20ca413b156152e457600060006024632e1a7d4d6102a052610280516102c0526102bc600073bf7e49483881c76487b0989cd7d9a8239b20ca415af1156152e4575b6000610280511815612feb576102206102605160028110156152e457602002018051610280518082106152e4578082039050905081525063a9059cbb61030452600461032480808061014051815250506020810190508080610280518152505060409050905001610300526103008051602001806103808284600060045af1156152e45750506020610420610380516103a0600060016102605160028110156152e45702600601545af1156152e45760203d80821115612f865780612f88565b815b90509050610400526104008051602001806102a08284600060045af1156152e457505060006102a0511115612fea576102a080602001516000825180602090136152e457809190126152e457806020036101000a8204905090509050156152e4575b5b5b8151600101808352811415612e4e575b50506101405161016051610180516101a0516101c0516101e0516102005161022051610240516102605161018051610280526101a0516102a052610220516102c052610240516102e0526101605161030052610300516102e0516102c0516102a05161028051600658016144b1565b61036052610260526102405261022052610200526101e0526101c0526101a052610180526101605261014052610360516102605260403661028037600a5460028082028215828483041417156152e457809050905090506004808204905090506102c0526102e060006002818352015b610260516101c06102e05160028110156152e45760200201518082028215828483041417156152e45780905090509050610200518080156152e457820490509050610300526000610320526102206102e05160028110156152e4576020020151610340526103405161030051111561316c5761030051610340518082106152e4578082039050905061032052613187565b61034051610300518082106152e45780820390509050610320525b6102c051610320518082028215828483041417156152e457809050905090506402540be400808204905090506102806102e05160028110156152e4576020020152610340516102806102e05160028110156152e457602002015164012a05f2008082028215828483041417156152e457809050905090506402540be400808204905090508082106152e4578082039050905060016102e05160028110156152e45702600801556102206102e05160028110156152e4576020020180516102806102e05160028110156152e45760200201518082106152e457808203905090508152505b81516001018083528114156130db575b50506101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161018051610300526101a051610320526102205161034052610240516103605261016051610380526103805161036051610340516103205161030051600658016144b1565b6103e0526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a0526101805261016052610140526103e0516102e05260195461030052610200516102e0518082106152e45780820390509050610300518082028215828483041417156152e45780905090509050610200518080156152e457820490509050600181818301106152e457808201905090506103205260016103205111156152e45760443561032051116152e457601a543b156152e45760006000602463026c334961034052336103605261035c6000601a545af1156152e4576103008051610320518082106152e457808203905090508152506103005160195560173360e05260c052604060c0208054610320518082106152e457808203905090508155506000337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6103408080806103205181525050602090509050610340a3337f2b5508378d7e19e0d5fa338419034731416c4f5b219a10379956f764317fd47e610340808080808060043581525050602081019050808060243581525050505060408101905080808080610280518152505060208101905080806102a051815250505050604081019050808061026051815250506020810190508080610300518152505060c090509050610340a261032051600052600060045560206000f35b63450e66658114156135735760643580607f1d8160801d14156152e45780905050600480356101405280602001356101605250604435610180526064356101a0526101a05161018051610160516101405160065801614cc9565b61020052610220526102005160005260206000f35b633c157e648114156137295760206101a0600463f851a4406101405261015c6005545afa156152e457601f3d11156152e4576000506101a0513314156152e457600d546201518081818301106152e4578082019050905042106152e457426201518081818301106152e45780820190509050602435106152e4576101405160065801613fd6565b6101605261014052610160516101405260043560648082028215828483041417156152e45780905090509050610160526000600435111561364257620f424060043510613645565b60005b156152e45761014051610160511015613683576101405161016051600a8082028215828483041417156152e45780905090509050106152e4576136aa565b61014051600a8082028215828483041417156152e4578090509050905061016051116152e4575b61014051600b5561016051600c5542600d55602435600e557fa2b71ec6df949300b59aab36b55e189697b750119dd349fcfa8c0f779e83c25461018080808061014051815250506020810190508080610160518152505060208101905080804281525050602081019050808060243581525050608090509050610180a1005b63551a65888114156137e45760206101a0600463f851a4406101405261015c6005545afa156152e457601f3d11156152e4576000506101a0513314156152e4576101405160065801613fd6565b6101605261014052610160516101405261014051600b5561014051600c5542600d5542600e557f46e22fb3709ad289f62ce63d469248536dbc78d82b84a3d7e74ad606dc201938610160808080610140518152505060208101905080804281525050604090509050610160a1005b63e2e7d26481141561388957600160043560028110156152e4570260060154610140526001600435141561382c5773bf7e49483881c76487b0989cd7d9a8239b20ca41610140525b60206101e060246370a0823161016052306101805261017c610140515afa156152e457601f3d11156152e4576000506101e051600160043560028110156152e45702600801548082106152e4578082039050905060005260206000f35b6330c54085811415613c12576005546101405260065461016052602061022060246370a082316101a052306101c0526101bc610160515afa156152e457601f3d11156152e457600050610220516008548082106152e45780820390509050610180526000610180511115613a055763a9059cbb61020452600461022480808061014051815250506020810190508080610180518152505060409050905001610200526102008051602001806102808284600060045af1156152e45750506020610320610280516102a06000610160515af1156152e45760203d808211156139705780613972565b815b90509050610300526103008051602001806101a08284600060045af1156152e457505060006101a05111156139d4576101a080602001516000825180602090136152e457809190126152e457806020036101000a8204905090509050156152e4575b6020610260600463bcc981d26102005261021c6000610140515af1156152e457601f3d11156152e457600050610260505b60075461016052602061022060246370a082316101a052306101c0526101bc73bf7e49483881c76487b0989cd7d9a8239b20ca415afa156152e457601f3d11156152e457600050610220516009548082106152e457808203905090506101805273bf7e49483881c76487b0989cd7d9a8239b20ca413b156152e457600060006024632e1a7d4d6101a052610180516101c0526101bc600073bf7e49483881c76487b0989cd7d9a8239b20ca415af1156152e457602061022060246370a082316101a052306101c0526101bc610160515afa156152e457601f3d11156152e45760005061022051610180526000610180511115613c10576020610240602463154aa8f56101c052306101e0526101dc610140515afa156152e457601f3d11156152e457600050610240516101a05263a9059cbb6102245260046102448080806101a051815250506020810190508080610180518152505060409050905001610220526102208051602001806102a08284600060045af1156152e457505060206103406102a0516102c06000610160515af1156152e45760203d80821115613bab5780613bad565b815b90509050610320526103208051602001806101c08284600060045af1156152e457505060006101c0511115613c0f576101c080602001516000825180602090136152e457809190126152e457806020036101000a8204905090509050156152e4575b5b005b63c6610657811415613c3a57600160043560028110156152e457026006015460005260206000f35b634903b0d1811415613c6257600160043560028110156152e457026008015460005260206000f35b63ddca3f43811415613c7a57600a5460005260206000f35b635409491a811415613c9257600b5460005260206000f35b63b4b577ad811415613caa57600c5460005260206000f35b632081066c811415613cc257600d5460005260206000f35b6314052288811415613cda57600e5460005260206000f35b6306fdde03811415613d7757601080610180602082540161012060006003818352015b82610120516020021115613d1057613d32565b61012051850154610120516020028501525b8151600101808352811415613cfd575b50505050505061018051806101a001818260206001820306601f82010390500336823750506020610160526040610180510160206001820306601f8201039050610160f35b6395d89b41811415613e1457601480610180602082540161012060006002818352015b82610120516020021115613dad57613dcf565b61012051850154610120516020028501525b8151600101808352811415613d9a575b50505050505061018051806101a001818260206001820306601f82010390500336823750506020610160526040610180510160206001820306601f8201039050610160f35b6370a08231811415613e445760043560a01c6152e457601760043560e05260c052604060c0205460005260206000f35b63dd62ed3e811415613e8c5760043560a01c6152e45760243560a01c6152e457601860043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b6318160ddd811415613ea45760195460005260206000f35b6364817b8a811415613ebc57601a5460005260206000f35b505b60006000fd5b6101a052610140526101605261018052601a546101c0526101c0513b156152e45760006000602463026c33496101e05261014051610200526101fc60006101c0515af1156152e45760176101405160e05260c052604060c0208054610180518082106152e457808203905090508155506101c0513b156152e45760006000602463026c33496101e05261016051610200526101fc60006101c0515af1156152e45760176101605160e05260c052604060c02080546101805181818301106152e4578082019050905081555061016051610140517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101e080808061018051815250506020905090506101e0a36101a051565b61014052600e5461016052600c54610180526101605142101561411c57600b546101a052600d546101c0526101a051610180511115614096576101a051610180516101a0518082106152e45780820390509050426101c0518082106152e457808203905090508082028215828483041417156152e45780905090509050610160516101c0518082106152e457808203905090508080156152e45782049050905081818301106152e457808201905090506000526000516101405156614117565b6101a0516101a051610180518082106152e45780820390509050426101c0518082106152e457808203905090508082028215828483041417156152e45780905090509050610160516101c0518082106152e457808203905090508080156152e4578204905090508082106152e4578082039050905060005260005161014051565b61412c565b6101805160005260005161014051565b005b6101c0526101405261016052610180526101a0526040366101e03761022060006002818352015b6101406102205160028110156152e45760200201516101806102205160028110156152e45760200201518082028215828483041417156152e45780905090509050670de0b6b3a7640000808204905090506101e06102205160028110156152e45760200201525b8151600101808352811415614155575b50506040610220525b600061022051116141e557614201565b602061022051036101e0015160206102205103610220526141d5565b6101c051565b6101a0526101405261016052610180526040366101c03761022060006002818352015b602061022051026101400151610200526101c080516102005181818301106152e457808201905090508152505b815160010180835281141561422a575b50506101c05161427f5760006000526000516101a051565b6101c051610200526101805160028082028215828483041417156152e4578090509050905061022052610240600060ff818352015b61020051610260526102a060006002818352015b60206102a0510261014001516102805261026051610200518082028215828483041417156152e457809050905090506102805160028082028215828483041417156152e457809050905090508080156152e457820490509050610260525b81516001018083528114156142c8575b5050610200516101e052610220516101c0518082028215828483041417156152e457809050905090506064808204905090506102605160028082028215828483041417156152e4578090509050905081818301106152e45780820190509050610200518082028215828483041417156152e457809050905090506102205160648082106152e45780820390509050610200518082028215828483041417156152e457809050905090506064808204905090506003610260518082028215828483041417156152e4578090509050905081818301106152e457808201905090508080156152e457820490509050610200526101e051610200511115614468576001610200516101e0518082106152e4578082039050905011614463576102005160005250506000516101a051565b614498565b60016101e051610200518082106152e4578082039050905011614497576102005160005250506000516101a051565b5b5b81516001018083528114156142b4575b505060006000fd5b6101e0526101405261016052610180526101a0526101c0526101405161016051610180516101a0516101c0516101e05161020051610220516101405161024052610160516102605261018051610280526101a0516102a0526102a0516102805161026051610240516006580161412e565b610300526103205261022052610200526101e0526101c0526101a052610180526101605261014052610300805161020052806020015161022052506101405161016051610180516101a0516101c0516101e0516102005161022051610200516102405261022051610260526101c0516102805261028051610260516102405160065801614207565b6102e05261022052610200526101e0526101c0526101a0526101805261016052610140526102e0516000526000516101e051565b6101e0526101405261016052610180526101a0526101c052610160516101405118156152e457600061016051126152e45760026101605112156152e457600061014051126152e45760026101405112156152e4576101405161016051610180516101a0516101c0516101e0516102005160065801613fd6565b61022052610200526101e0526101c0526101a05261018052610160526101405261022051610200526101405161016051610180516101a0516101c0516101e05161020051610220516101a051610240526101c05161026052610200516102805261028051610260516102405160065801614207565b6102e05261022052610200526101e0526101c0526101a0526101805261016052610140526102e0516102205260603661024037610220516102a0526102005160028082028215828483041417156152e457809050905090506102c0526102e060006002818352015b610140516102e051141561474f576101805161026052614781565b610160516102e051181561477b576101a06102e05160028110156152e457602002015161026052614780565b6147eb565b5b61024080516102605181818301106152e457808201905090508152506102a051610220518082028215828483041417156152e457809050905090506102605160028082028215828483041417156152e457809050905090508080156152e4578204905090506102a0525b8151600101808352811415614734575b50506102a051610220518082028215828483041417156152e4578090509050905060648082028215828483041417156152e457809050905090506102c05160028082028215828483041417156152e457809050905090508080156152e4578204905090506102a052610240516102205160648082028215828483041417156152e457809050905090506102c0518080156152e45782049050905081818301106152e457808201905090506102e0526102205161030052610320600060ff818352015b610300516102805261030051610300518082028215828483041417156152e457809050905090506102a05181818301106152e457808201905090506002610300518082028215828483041417156152e457809050905090506102e05181818301106152e45780820190509050610220518082106152e457808203905090508080156152e457820490509050610300526102805161030051111561498e57600161030051610280518082106152e4578082039050905011614989576103005160005250506000516101e051565b6149be565b600161028051610300518082106152e45780820390509050116149bd576103005160005250506000516101e051565b5b5b81516001018083528114156148bd575b505060006000fd5b6101e0526101405261016052610180526101a0526101c052600061016051126152e45760026101605112156152e457606036610200376101c051610260526101405160028082028215828483041417156152e45780905090509050610280526102a060006002818352015b610160516102a0511815614a6e576101806102a05160028110156152e457602002015161022052614a73565b614add565b61020080516102205181818301106152e45780820190509050815250610260516101c0518082028215828483041417156152e457809050905090506102205160028082028215828483041417156152e457809050905090508080156152e457820490509050610260525b8151600101808352811415614a42575b5050610260516101c0518082028215828483041417156152e4578090509050905060648082028215828483041417156152e457809050905090506102805160028082028215828483041417156152e457809050905090508080156152e45782049050905061026052610200516101c05160648082028215828483041417156152e45780905090509050610280518080156152e45782049050905081818301106152e457808201905090506102a0526101c0516102c0526102e0600060ff818352015b6102c051610240526102c0516102c0518082028215828483041417156152e457809050905090506102605181818301106152e4578082019050905060026102c0518082028215828483041417156152e457809050905090506102a05181818301106152e457808201905090506101c0518082106152e457808203905090508080156152e4578204905090506102c052610240516102c0511115614c805760016102c051610240518082106152e4578082039050905011614c7b576102c05160005250506000516101e051565b614cb0565b6001610240516102c0518082106152e4578082039050905011614caf576102c05160005250506000516101e051565b5b5b8151600101808352811415614baf575b505060006000fd5b6101c0526101405261016052610180526101a0526101405161016051610180516101a0516101c0516101e05160065801613fd6565b610200526101e0526101c0526101a052610180526101605261014052610200516101e05260206102a0600463bb7b8b806102405261025c737f90122bf0700f9e7e1f688fe926940e8839f3535afa156152e457601f3d11156152e4576000506102a0516102c052600f54610200526102c051610220526101405161016051610180516101a0516101c0516101e051610200516102205161024051610260516102005161028052610220516102a052610140516102c052610160516102e0526102e0516102c0516102a051610280516006580161412e565b6103405261036052610260526102405261022052610200526101e0526101c0526101a052610180526101605261014052610340805161024052806020015161026052506101405161016051610180516101a0516101c0516101e0516102005161022051610240516102605161028051610240516102a052610260516102c0526101e0516102e0526102e0516102c0516102a05160065801614207565b6103405261028052610260526102405261022052610200526101e0526101c0526101a05261018052610160526101405261034051610280526019546102a0526102805161018051610280518082028215828483041417156152e457809050905090506102a0518080156152e4578204905090508082106152e457808203905090506102c052610140610300525b61030051516020610300510161030052610300610300511015614f2057614efe565b6101e051610320526101a05161034052610240516103605261026051610380526102c0516103a0526103a05161038051610360516103405161032051600658016149d7565b610400526102e0610300525b610300515260206103005103610300526101406103005110614f9257614f71565b610400516102e052600a5460028082028215828483041417156152e45780905090509050600480820490509050610300526040366103203761036060006002818352015b6000610380526102406103605160028110156152e45760200201516103a0526101a05161036051141561504e576103a0516102c0518082028215828483041417156152e45780905090509050610280518080156152e4578204905090506102e0518082106152e4578082039050905061038052615095565b6103a0516103a0516102c0518082028215828483041417156152e45780905090509050610280518080156152e4578204905090508082106152e45780820390509050610380525b6103a05161030051610380518082028215828483041417156152e457809050905090506402540be400808204905090508082106152e457808203905090506103206103605160028110156152e45760200201525b8151600101808352811415614fd6575b50506103206101a05160028110156152e4576020020151610140610380525b6103805151602061038051016103805261038061038051101561513a57615118565b6101e0516103a0526101a0516103c052610320516103e05261034051610400526102c0516104205261042051610400516103e0516103c0516103a051600658016149d7565b61048052610360610380525b6103805152602061038051036103805261014061038051106151ac5761518b565b610480518082106152e45780820390509050610360526102406101a05160028110156152e45760200201516102e0518082106152e45780820390509050670de0b6b3a76400008082028215828483041417156152e457809050905090506102006101a05160028110156152e45760200201518080156152e457820490509050610380526103605160018082106152e45780820390509050670de0b6b3a76400008082028215828483041417156152e457809050905090506102006101a05160028110156152e45760200201518080156152e45782049050905061036052610360516103c05261038051610360518082106152e457808203905090506103e05260406103a0525b60006103a051116152c2576152de565b60206103a051036103c0015160206103a051036103a0526152b2565b6101c051565b600080fd5b61000a6152f30361000a60003961000a6152f3036000f3