0 txs
0 calls
constructor
No constructor.
functions
deployedProxy
viewfunction deployedProxy() view returns (address)
eligibleLongPositionCloser
viewfunction eligibleLongPositionCloser() view returns (address)
eligibleLongPositionOpener
viewfunction eligibleLongPositionOpener() view returns (address)
eligiblePositionCloser
viewfunction eligiblePositionCloser() view returns (address)
eligibleShortPositionCloser
viewfunction eligibleShortPositionCloser() view returns (address)
eligibleShortPositionOpener
viewfunction eligibleShortPositionOpener() view returns (address)
getPositionEthDataRoi
viewfunction getPositionEthDataRoi(address usersGmxProxy, bool isLong) view returns (uint256[])
GMX_READER
viewfunction GMX_READER() view returns (address)
GMX_VAULT
viewfunction GMX_VAULT() view returns (address)
gmxProxy
viewfunction gmxProxy() view returns (address)
owner
viewfunction owner() view returns (address)
USDC
viewfunction USDC() view returns (address)
userProxy
viewfunction userProxy(address) view returns (address)
WETH
viewfunction WETH() view returns (address)
closeAllPositions
payablefunction closeAllPositions(address maker) payable
closeLongPositions
payablefunction closeLongPositions(address maker) payable
closeShortPositions
payablefunction closeShortPositions(address maker) payable
initialize
nonpayablefunction initialize()
openX20Leverage
payablefunction openX20Leverage(address maker, bool isLong) payable returns (bytes32)
renounceOwnership
nonpayablefunction renounceOwnership()
setDeployedProxy
nonpayablefunction setDeployedProxy(address _deployedProxy)
setEligibleAllPositionCloser
nonpayablefunction setEligibleAllPositionCloser(address _eligibleAllPositionCloser)
setEligibleLongPositionCloser
nonpayablefunction setEligibleLongPositionCloser(address _eligibleLongPositionCloser)
setEligibleLongPositionOpener
nonpayablefunction setEligibleLongPositionOpener(address _eligibleLongPositionOpener)
setEligibleShortPositionCloser
nonpayablefunction setEligibleShortPositionCloser(address _eligibleShortPositionCloser)
setEligibleShortPositionOpener
nonpayablefunction setEligibleShortPositionOpener(address _eligibleShortPositionOpener)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferProxyOwnership
nonpayablefunction transferProxyOwnership(address _userProxy, address newOwner)
events
Initialized
event Initialized(uint8 version)
OpenedLeveragePosition
event OpenedLeveragePosition(address maker, address personalProxy)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50613485806100206000396000f3fe6080604052600436106101ba5760003560e01c80637e36c6fc116100ec57806399d73cc51161008a578063b84a5cbd11610064578063b84a5cbd146104fb578063dccc00a51461050e578063f2fde38b1461052e578063f8c344bf1461054e57600080fd5b806399d73cc514610493578063ad5c4648146104b3578063b04ddeec146104db57600080fd5b806385e4ad65116100c657806385e4ad65146103f757806388b82b711461041757806389a302711461044d5780638da5cb5b1461047557600080fd5b80637e36c6fc1461039a578063803427f5146103c25780638129fc1c146103e257600080fd5b806338d2cbb8116101595780635d650d40116101335780635d650d40146103245780636cf3e7fb14610344578063715018a614610364578063761c7b541461037957600080fd5b806338d2cbb8146102c4578063470639e1146102e457806359613c0b1461030457600080fd5b80630c426201116101955780630c42620114610231578063122915e6146102445780632db9f59a146102645780632e3773fc146102a457600080fd5b8062361d55146101c657806307eb755f146101e85780630bc704041461021e57600080fd5b366101c157005b600080fd5b3480156101d257600080fd5b506101e66101e1366004610fc8565b61056e565b005b3480156101f457600080fd5b50610208610203366004610ffb565b6105d5565b6040516102159190611037565b60405180910390f35b6101e661022c36600461107b565b61069c565b6101e661023f36600461107b565b6106eb565b34801561025057600080fd5b506101e661025f36600461107b565b61078c565b34801561027057600080fd5b5061028c73489ee077994b6658eafa855c308275ead8097c4a81565b6040516001600160a01b039091168152602001610215565b3480156102b057600080fd5b50609c5461028c906001600160a01b031681565b3480156102d057600080fd5b5060975461028c906001600160a01b031681565b3480156102f057600080fd5b506101e66102ff36600461107b565b6107b6565b34801561031057600080fd5b506101e661031f36600461107b565b6107e0565b34801561033057600080fd5b506101e661033f36600461107b565b61080a565b34801561035057600080fd5b506101e661035f36600461107b565b610834565b34801561037057600080fd5b506101e661085e565b61038c610387366004610ffb565b610872565b604051908152602001610215565b3480156103a657600080fd5b5061028c7322199a49a999c351ef7927602cfb187ec3cae48981565b3480156103ce57600080fd5b506101e66103dd36600461107b565b610910565b3480156103ee57600080fd5b506101e661093a565b34801561040357600080fd5b50609a5461028c906001600160a01b031681565b34801561042357600080fd5b5061028c61043236600461107b565b6098602052600090815260409020546001600160a01b031681565b34801561045957600080fd5b5061028c73ff970a61a04b1ca14834a43f5de4533ebddb5cc881565b34801561048157600080fd5b506033546001600160a01b031661028c565b34801561049f57600080fd5b5060995461028c906001600160a01b031681565b3480156104bf57600080fd5b5061028c7382af49447d8a07e3bd95bd0d56f35241523fbab181565b3480156104e757600080fd5b5060cf5461028c906001600160a01b031681565b6101e661050936600461107b565b610a4b565b34801561051a57600080fd5b50609b5461028c906001600160a01b031681565b34801561053a57600080fd5b506101e661054936600461107b565b610aba565b34801561055a57600080fd5b5060d05461028c906001600160a01b031681565b610576610b30565b60405163f2fde38b60e01b81526001600160a01b03828116600483015283169063f2fde38b90602401600060405180830381600087803b1580156105b957600080fd5b505af11580156105cd573d6000803e3d6000fd5b505050505050565b60607322199a49a999c351ef7927602cfb187ec3cae48963dc383cab73489ee077994b6658eafa855c308275ead8097c4a8561061086610b8a565b610618610c49565b61062188610cb4565b6040518663ffffffff1660e01b81526004016106419594939291906110da565b60006040518083038186803b15801561065957600080fd5b505afa15801561066d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106959190810190611176565b9392505050565b6001600160a01b0380821660009081526098602052604090205416806106dd5760405162461bcd60e51b81526004016106d490611234565b60405180910390fd5b6106e78183610d04565b5050565b6001600160a01b0380821660009081526098602052604090205416806107235760405162461bcd60e51b81526004016106d490611234565b604051635f18981560e11b81526001600160a01b0383811660048301526001602483015282169063be31302a9034906044015b6000604051808303818588803b15801561076f57600080fd5b505af1158015610783573d6000803e3d6000fd5b50505050505050565b610794610b30565b609b80546001600160a01b0319166001600160a01b0392909216919091179055565b6107be610b30565b609c80546001600160a01b0319166001600160a01b0392909216919091179055565b6107e8610b30565b60d080546001600160a01b0319166001600160a01b0392909216919091179055565b610812610b30565b609980546001600160a01b0319166001600160a01b0392909216919091179055565b61083c610b30565b60cf80546001600160a01b0319166001600160a01b0392909216919091179055565b610866610b30565b6108706000610d34565b565b6001600160a01b0380831660009081526098602052604081205490911681816108a15761089e85610d86565b91505b83156108b8576108b18286610e94565b90506108c5565b6108c28286610f16565b90505b604080516001600160a01b038088168252841660208201527fe429b92b89a7263996788bdba3dd737627447a8c7b978335d10df2627726f8b6910160405180910390a1949350505050565b610918610b30565b609a80546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff161580801561095a5750600054600160ff909116105b806109745750303b158015610974575060005460ff166001145b6109d75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106d4565b6000805460ff1916600117905580156109fa576000805461ff0019166101001790555b610a02610f4a565b8015610a48576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6001600160a01b038082166000908152609860205260409020541680610a835760405162461bcd60e51b81526004016106d490611234565b604051635f18981560e11b81526001600160a01b0383811660048301526000602483015282169063be31302a903490604401610756565b610ac2610b30565b6001600160a01b038116610b275760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d4565b610a4881610d34565b6033546001600160a01b031633146108705760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d4565b60608115610bfa57604080516001808252818301909252600091602080830190803683370190505090507382af49447d8a07e3bd95bd0d56f35241523fbab181600081518110610bdc57610bdc611261565b6001600160a01b039092166020928302919091019091015292915050565b6040805160018082528183019092526000916020808301908036833701905050905073ff970a61a04b1ca14834a43f5de4533ebddb5cc881600081518110610bdc57610bdc611261565b919050565b60408051600180825281830190925260609160009190602080830190803683370190505090507382af49447d8a07e3bd95bd0d56f35241523fbab181600081518110610c9757610c97611261565b6001600160a01b0390921660209283029190910190910152919050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110610cee57610cee611261565b9115156020928302919091019091015292915050565b6040516302f1c10160e21b81526001600160a01b038281166004830152831690630bc70404903490602401610756565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080604051610d9590610fa4565b604051809103906000f080158015610db1573d6000803e3d6000fd5b5060405163189acdbd60e31b81523060048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b158015610df657600080fd5b505af1158015610e0a573d6000803e3d6000fd5b50505050806001600160a01b03166347f5d7106040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610e4957600080fd5b505af1158015610e5d573d6000803e3d6000fd5b505050506001600160a01b03928316600090815260986020526040902080546001600160a01b031916938216939093179092555090565b60405163ae494f6360e01b81526001600160a01b0382811660048301526000919084169063ae494f639034906024015b6020604051808303818588803b158015610edd57600080fd5b505af1158015610ef1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106959190611277565b60405163e4b6d6db60e01b81526001600160a01b0382811660048301526000919084169063e4b6d6db903490602401610ec4565b600054610100900460ff16610f715760405162461bcd60e51b81526004016106d490611290565b610870600054610100900460ff16610f9b5760405162461bcd60e51b81526004016106d490611290565b61087033610d34565b612174806112dc83390190565b80356001600160a01b0381168114610c4457600080fd5b60008060408385031215610fdb57600080fd5b610fe483610fb1565b9150610ff260208401610fb1565b90509250929050565b6000806040838503121561100e57600080fd5b61101783610fb1565b91506020830135801515811461102c57600080fd5b809150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561106f57835183529284019291840191600101611053565b50909695505050505050565b60006020828403121561108d57600080fd5b61069582610fb1565b600081518084526020808501945080840160005b838110156110cf5781516001600160a01b0316875295820195908201906001016110aa565b509495945050505050565b600060018060a01b03808816835260208188168185015260a0604085015261110560a0850188611096565b915083820360608501526111198287611096565b8481036080860152855180825282870193509082019060005b81811015611150578451151583529383019391830191600101611132565b50909a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561118957600080fd5b825167ffffffffffffffff808211156111a157600080fd5b818501915085601f8301126111b557600080fd5b8151818111156111c7576111c7611160565b8060051b604051601f19603f830116810181811085821117156111ec576111ec611160565b60405291825284820192508381018501918883111561120a57600080fd5b938501935b828510156112285784518452938501939285019261120f565b98975050505050505050565b602080825260139082015272646f6e742068617665206f776e2070726f787960681b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561128957600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fe608060405234801561001057600080fd5b50612154806100206000396000f3fe60806040526004361061016a5760003560e01c80638da5cb5b116100d1578063d3e78e4d1161008a578063edf3daec11610064578063edf3daec1461049b578063f2fde38b146104bb578063fbfa77cf146104db578063ff7ebbf21461036a57600080fd5b8063d3e78e4d14610438578063e4b6d6db14610460578063e60724e31461047357600080fd5b80638da5cb5b1461037f578063ad5c46481461039d578063ae494f63146103c5578063be31302a146103d8578063c4d66de8146103eb578063c968b70e1461040b57600080fd5b8063562a97e511610123578063562a97e514610245578063715018a61461026d5780637e36c6fc146102825780638645f7a8146102aa57806389a30271146103425780638d01f0ba1461036a57600080fd5b80630bc7040414610176578063139dbe6c1461018b5780631ea21f1f146101d05780632db9f59a146101f357806336b4134a1461021b57806347f5d7101461023057600080fd5b3661017157005b600080fd5b610189610184366004611b62565b6104fb565b005b34801561019757600080fd5b506101b373b87a436b93ffe9d75c5cfa7bacfff96430b0986881565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101dc57600080fd5b506101e5600081565b6040519081526020016101c7565b3480156101ff57600080fd5b506101b373489ee077994b6658eafa855c308275ead8097c4a81565b34801561022757600080fd5b506101e5600681565b34801561023c57600080fd5b506101896105eb565b34801561025157600080fd5b506101b373abbc5f99639c9b6bcb58544ddf04efa6802f406481565b34801561027957600080fd5b50610189610665565b34801561028e57600080fd5b506101b37322199a49a999c351ef7927602cfb187ec3cae48981565b3480156102b657600080fd5b5061030a6102c5366004611b7d565b609760205260009081526040902080546001909101546001600160a01b0382169160ff600160a01b8204811692600160a81b8304821692600160b01b90049091169085565b604080516001600160a01b0390961686529315156020860152911515928401929092529015156060830152608082015260a0016101c7565b34801561034e57600080fd5b506101b373ff970a61a04b1ca14834a43f5de4533ebddb5cc881565b34801561037657600080fd5b506101e5600a81565b34801561038b57600080fd5b506033546001600160a01b03166101b3565b3480156103a957600080fd5b506101b37382af49447d8a07e3bd95bd0d56f35241523fbab181565b6101e56103d3366004611b62565b610679565b6101896103e6366004611ba4565b6106b9565b3480156103f757600080fd5b50610189610406366004611b62565b610775565b34801561041757600080fd5b5061042b610426366004611ba4565b6108a1565b6040516101c79190611bdb565b34801561044457600080fd5b506101b373ce03b880634ebd9bd0f6974ccf430eded3a8363f81565b6101e561046e366004611b62565b61096a565b34801561047f57600080fd5b506101b373639fe6ab55c921f74e7fac1ee960c0b6293ba61281565b3480156104a757600080fd5b506101896104b6366004611c1f565b6109a2565b3480156104c757600080fd5b506101896104d6366004611b62565b610b0c565b3480156104e757600080fd5b506099546101b3906001600160a01b031681565b6099546001600160a01b0316331461052e5760405162461bcd60e51b815260040161052590611c61565b60405180910390fd5b6000610538610b85565b905034610546826002611c97565b116105b25761055782600183610c13565b61056382600083610c13565b6001600160a01b0382166108fc61057b836002611c97565b6105859034611cb6565b6040518115909202916000818181858888f193505050501580156105ad573d6000803e3d6000fd5b505050565b6040516001600160a01b038316903480156108fc02916000818181858888f193505050501580156105ad573d6000803e3d6000fd5b5050565b6040516338c74dd960e01b815273b87a436b93ffe9d75c5cfa7bacfff96430b09868600482015273abbc5f99639c9b6bcb58544ddf04efa6802f4064906338c74dd990602401600060405180830381600087803b15801561064b57600080fd5b505af115801561065f573d6000803e3d6000fd5b50505050565b61066d610f7f565b6106776000610fd9565b565b6099546000906001600160a01b031633146106a65760405162461bcd60e51b815260040161052590611c61565b6106b182600161102b565b90505b919050565b6099546001600160a01b031633146106e35760405162461bcd60e51b815260040161052590611c61565b60006106ed610b85565b905034811161074057610701838383610c13565b6001600160a01b0383166108fc6107188334611cb6565b6040518115909202916000818181858888f1935050505015801561065f573d6000803e3d6000fd5b6040516001600160a01b038416903480156108fc02916000818181858888f1935050505015801561065f573d6000803e3d6000fd5b600054610100900460ff16158080156107955750600054600160ff909116105b806107af5750303b1580156107af575060005460ff166001145b6108125760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610525565b6000805460ff191660011790558015610835576000805461ff0019166101001790555b61083d611412565b609980546001600160a01b0319166001600160a01b03841617905580156105e7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60607322199a49a999c351ef7927602cfb187ec3cae48963dc383cab73489ee077994b6658eafa855c308275ead8097c4a856108dc86611441565b6108e46114fb565b6108ed88611566565b6040518663ffffffff1660e01b815260040161090d959493929190611d11565b60006040518083038186803b15801561092557600080fd5b505afa158015610939573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109619190810190611dad565b90505b92915050565b6099546000906001600160a01b031633146109975760405162461bcd60e51b815260040161052590611c61565b6106b182600061102b565b73b87a436b93ffe9d75c5cfa7bacfff96430b0986833146109fc5760405162461bcd60e51b815260206004820152601460248201527310a3a6ac2fa827a9a4aa24a7a72fa927aaaa22a960611b6044820152606401610525565b6000838152609760205260409020828015610a145750815b15610a2b57805460ff60a01b1916600160a01b1781555b828015610a36575081155b80610a47575082158015610a475750815b15610ab2578054610a6d906001600160a01b03811690600160b01b900460ff16856115b6565b80546001600160a01b03166000908152609860205260409020610a909085611706565b50600084815260976020526040812080546001600160b81b0319168155600101555b82158015610abe575081155b1561065f5780546001600160a01b03166000908152609860205260409020610ae69085611706565b50505060009182525060976020526040812080546001600160b81b031916815560010155565b610b14610f7f565b6001600160a01b038116610b795760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610525565b610b8281610fd9565b50565b600073b87a436b93ffe9d75c5cfa7bacfff96430b098686001600160a01b03166363ae21036040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610bd657600080fd5b505af1158015610bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0e9190611e6b565b905090565b6000828015610ce0576040516340d3096b60e11b81527382af49447d8a07e3bd95bd0d56f35241523fbab1600482015260009073489ee077994b6658eafa855c308275ead8097c4a906381a612d69060240160206040518083038186803b158015610c7d57600080fd5b505afa158015610c91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb59190611e6b565b90506064610cc4600683611c97565b610cce9190611e84565b610cd89082611cb6565b925050610da0565b604051637092736960e11b81527382af49447d8a07e3bd95bd0d56f35241523fbab1600482015260009073489ee077994b6658eafa855c308275ead8097c4a9063e124e6d29060240160206040518083038186803b158015610d4157600080fd5b505afa158015610d55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d799190611e6b565b90506064610d88600683611c97565b610d929190611e84565b610d9c9082611ea6565b9250505b6000610dac30866108a1565b9050600073b87a436b93ffe9d75c5cfa7bacfff96430b09868637be7d14186610dd58685611712565b7382af49447d8a07e3bd95bd0d56f35241523fbab1600087600081518110610dff57610dff611ebe565b602002602001015189308c60008f8e306040518d63ffffffff1660e01b8152600401610e359b9a99989796959493929190611ed4565b6020604051808303818588803b158015610e4e57600080fd5b505af1158015610e62573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e879190611e6b565b6040805160a0810182526001600160a01b03808b16808352600060208085018281528587018381528e151560608801908152608088018581528a865260978552898620985189549451935192511515600160b01b0260ff60b01b19931515600160a81b029390931661ffff60a81b19941515600160a01b026001600160a81b0319909616919099161793909317919091169590951794909417855592516001949094019390935582526098905220909150610f429082611888565b506040518181527f86337556ac9ade551500a3c3a5e797e6a3b50e92e53df4cde62cd95a5c89537d9060200160405180910390a150505050505050565b6033546001600160a01b031633146106775760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610525565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080611036610b85565b90506000611045600a34611e84565b905060006110538234611cb6565b9050600061106082611894565b90506000861561112e57604051637092736960e11b81527382af49447d8a07e3bd95bd0d56f35241523fbab1600482015260009073489ee077994b6658eafa855c308275ead8097c4a9063e124e6d29060240160206040518083038186803b1580156110cb57600080fd5b505afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111039190611e6b565b90506064611112600683611c97565b61111c9190611e84565b6111269082611ea6565b9150506111ee565b6040516340d3096b60e11b81527382af49447d8a07e3bd95bd0d56f35241523fbab1600482015260009073489ee077994b6658eafa855c308275ead8097c4a906381a612d69060240160206040518083038186803b15801561118f57600080fd5b505afa1580156111a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c79190611e6b565b905060646111d6600683611c97565b6111e09190611e84565b6111ea9082611cb6565b9150505b6111f7846118f6565b73b87a436b93ffe9d75c5cfa7bacfff96430b09868635b88e8c68461121d8a6001611712565b6040516001600160e01b031960e085901b16815261126391907382af49447d8a07e3bd95bd0d56f35241523fbab19060009089908f908a908f9085903090600401611f47565b6020604051808303818588803b15801561127c57600080fd5b505af1158015611290573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112b59190611e6b565b95506040518060a00160405280896001600160a01b031681526020016000151581526020016001151581526020018815158152602001838152506097600088815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160000160146101000a81548160ff02191690831515021790555060408201518160000160156101000a81548160ff02191690831515021790555060608201518160000160166101000a81548160ff021916908315150217905550608082015181600101559050506113d386609860008b6001600160a01b03166001600160a01b0316815260200190815260200160002061188890919063ffffffff16565b506040518681527f044f63f2eed9e8888c18ad8644a4e8d9caa337e924f09b6e199c7b0c1debad6c9060200160405180910390a1505050505092915050565b600054610100900460ff166114395760405162461bcd60e51b815260040161052590611fa9565b610677611937565b606081156114b157604080516001808252818301909252600091602080830190803683370190505090507382af49447d8a07e3bd95bd0d56f35241523fbab18160008151811061149357611493611ebe565b6001600160a01b039092166020928302919091019091015292915050565b6040805160018082528183019092526000916020808301908036833701905050905073ff970a61a04b1ca14834a43f5de4533ebddb5cc88160008151811061149357611493611ebe565b60408051600180825281830190925260609160009190602080830190803683370190505090507382af49447d8a07e3bd95bd0d56f35241523fbab18160008151811061154957611549611ebe565b6001600160a01b0390921660209283029190910190910152919050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106115a0576115a0611ebe565b9115156020928302919091019091015292915050565b81806115c0575080155b156115fa576040516001600160a01b038416904780156108fc02916000818181858888f1935050505015801561065f573d6000803e3d6000fd5b6040516370a0823160e01b815230600482015273ff970a61a04b1ca14834a43f5de4533ebddb5cc89063a9059cbb90859083906370a0823190602401602060405180830381600087803b15801561165057600080fd5b505af1158015611664573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116889190611e6b565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156116ce57600080fd5b505af11580156116e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065f9190611ff4565b60006109618383611967565b606082801561171e5750815b8061172f575082801561172f575081155b1561179d57604080516001808252818301909252600091602080830190803683370190505090507382af49447d8a07e3bd95bd0d56f35241523fbab18160008151811061177e5761177e611ebe565b6001600160a01b03909216602092830291909101909101529050610964565b821580156117a85750815b1561183e576040805160028082526060820183526000926020830190803683370190505090507382af49447d8a07e3bd95bd0d56f35241523fbab1816000815181106117f6576117f6611ebe565b60200260200101906001600160a01b031690816001600160a01b03168152505073ff970a61a04b1ca14834a43f5de4533ebddb5cc88160018151811061177e5761177e611ebe565b6040805160018082528183019092526000916020808301908036833701905050905073ff970a61a04b1ca14834a43f5de4533ebddb5cc88160008151811061177e5761177e611ebe565b60006109618383611a5a565b60008061189f611aa9565b905060006118ab611afa565b905060006118ba82600a6120fc565b6118c48487611c97565b6118ce9190611e84565b905060006118dd600a83611c97565b6118ec9064e8d4a51000611c97565b9695505050505050565b60405173ce03b880634ebd9bd0f6974ccf430eded3a8363f9082156108fc029083906000818181858888f193505050501580156105e7573d6000803e3d6000fd5b600054610100900460ff1661195e5760405162461bcd60e51b815260040161052590611fa9565b61067733610fd9565b60008181526001830160205260408120548015611a5057600061198b600183611cb6565b855490915060009061199f90600190611cb6565b9050818114611a045760008660000182815481106119bf576119bf611ebe565b90600052602060002001549050808760000184815481106119e2576119e2611ebe565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611a1557611a15612108565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610964565b6000915050610964565b6000818152600183016020526040812054611aa157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610964565b506000610964565b600073639fe6ab55c921f74e7fac1ee960c0b6293ba6126001600160a01b03166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610bd657600080fd5b600073639fe6ab55c921f74e7fac1ee960c0b6293ba6126001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610bd657600080fd5b80356001600160a01b03811681146106b457600080fd5b600060208284031215611b7457600080fd5b61096182611b4b565b600060208284031215611b8f57600080fd5b5035919050565b8015158114610b8257600080fd5b60008060408385031215611bb757600080fd5b611bc083611b4b565b91506020830135611bd081611b96565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b81811015611c1357835183529284019291840191600101611bf7565b50909695505050505050565b600080600060608486031215611c3457600080fd5b833592506020840135611c4681611b96565b91506040840135611c5681611b96565b809150509250925092565b602080825260069082015265085d985d5b1d60d21b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611cb157611cb1611c81565b500290565b600082821015611cc857611cc8611c81565b500390565b600081518084526020808501945080840160005b83811015611d065781516001600160a01b031687529582019590820190600101611ce1565b509495945050505050565b600060018060a01b03808816835260208188168185015260a06040850152611d3c60a0850188611ccd565b91508382036060850152611d508287611ccd565b8481036080860152855180825282870193509082019060005b81811015611d87578451151583529383019391830191600101611d69565b50909a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611dc057600080fd5b825167ffffffffffffffff80821115611dd857600080fd5b818501915085601f830112611dec57600080fd5b815181811115611dfe57611dfe611d97565b8060051b604051601f19603f83011681018181108582111715611e2357611e23611d97565b604052918252848201925083810185019188831115611e4157600080fd5b938501935b82851015611e5f57845184529385019392850192611e46565b98975050505050505050565b600060208284031215611e7d57600080fd5b5051919050565b600082611ea157634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611eb957611eb9611c81565b500190565b634e487b7160e01b600052603260045260246000fd5b6000610160808352611ee88184018f611ccd565b6001600160a01b039d8e166020850152604084019c909c5250506060810198909852951515608088015293881660a087015260c086019290925260e0850152610100840152151561012083015290921661014090920191909152919050565b6000610120808352611f5b8184018d611ccd565b6001600160a01b039b8c166020850152604084019a909a5250506060810196909652931515608086015260a085019290925260c084015260e083015290921661010090920191909152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020828403121561200657600080fd5b815161201181611b96565b9392505050565b600181815b8085111561205357816000190482111561203957612039611c81565b8085161561204657918102915b93841c939080029061201d565b509250929050565b60008261206a57506001610964565b8161207757506000610964565b816001811461208d5760028114612097576120b3565b6001915050610964565b60ff8411156120a8576120a8611c81565b50506001821b610964565b5060208310610133831016604e8410600b84101617156120d6575081810a610964565b6120e08383612018565b80600019048211156120f4576120f4611c81565b029392505050565b6000610961838361205b565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220f43a31a77dc8a7ca62825c7e9db32c394e076c5b92080a6fd2b67483fdb22ab764736f6c63430008090033a2646970667358221220595e5056d173504894d1eab75a2ff8c815a0ac81b27b008f71866740304a681664736f6c63430008090033