0x60806040526004361061009d575f3560e01c8063313ce56711610062578063313ce5671461018057806370a08231146101a657806395d89b41146101d1578063a9059cbb146101ff578063c9567bf91461021e578063dd62ed3e14610232575f80fd5b806306058c3d146100a857806306fdde03146100c9578063095ea7b31461011057806318160ddd1461013f57806323b872dd14610161575f80fd5b366100a457005b5f80fd5b3480156100b3575f80fd5b506100c76100c2366004610798565b610268565b005b3480156100d4575f80fd5b506100fa6040518060400160405280600681526020016547656c696f7360d01b81525081565b60405161010791906107b8565b60405180910390f35b34801561011b575f80fd5b5061012f61012a36600461081e565b610291565b6040519015158152602001610107565b34801561014a575f80fd5b506101536102fd565b604051908152602001610107565b34801561016c575f80fd5b5061012f61017b366004610846565b61031a565b34801561018b575f80fd5b50610194601281565b60405160ff9091168152602001610107565b3480156101b1575f80fd5b506101536101c036600461087f565b60026020525f908152604090205481565b3480156101dc575f80fd5b506100fa60405180604001604052806003815260200162674f5360e81b81525081565b34801561020a575f80fd5b5061012f61021936600461081e565b610367565b348015610229575f80fd5b506100c761037a565b34801561023d575f80fd5b5061015361024c366004610898565b600360209081525f928352604080842090915290825290205481565b337382e9e5b353b80acfe493354c70b6ba20f87de02914610287575f80fd5b5f91909155600155565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102eb9086815260200190565b60405180910390a35060015b92915050565b6103096012600a6109bd565b61031790630c8458806109cb565b81565b6001600160a01b0383165f90815260036020908152604080832033845290915281208054839190839061034e9084906109e2565b9091555061035f90508484846103c4565b949350505050565b5f6103733384846103c4565b9392505050565b337382e9e5b353b80acfe493354c70b6ba20f87de02914610399575f80fd5b600454600160a81b900460ff16156103af575f80fd5b6004805460ff60a81b1916600160a81b179055565b6004545f90600160a81b900460ff16806103fa57506001600160a01b0384167382e9e5b353b80acfe493354c70b6ba20f87de029145b8061042157506001600160a01b0383167382e9e5b353b80acfe493354c70b6ba20f87de029145b610429575f80fd5b600454600160a81b900460ff1615801561044c57506004546001600160a01b0316155b801561045757505f82115b1561047857600480546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0384165f908152600260205260408120805484929061049f9084906109e2565b90915550506004546001600160a01b0384811691161480156104cb5750600454600160a01b900460ff16155b801561050a575060646104e06012600a6109bd565b6104ee90630c8458806109cb565b6104f891906109f5565b305f9081526002602052604090205410155b15610694576004805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061055557610555610a14565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061059d5761059d610a14565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63791ac94760646105dd6012600a6109bd565b6105eb90630c8458806109cb565b6105f591906109f5565b5f8430426040518663ffffffff1660e01b8152600401610619959493929190610a28565b5f604051808303815f87803b158015610630575f80fd5b505af1158015610642573d5f803e3d5ffd5b50506040517382e9e5b353b80acfe493354c70b6ba20f87de02992504780156108fc029250905f818181858888f19350505050158015610684573d5f803e3d5ffd5b50506004805460ff60a01b191690555b6001600160a01b0384163014610713576004545f90605f906001600160a01b038781169116146106c6576001546106c9565b5f545b6106d390856109cb565b6106dd91906109f5565b90506106e981846109e2565b305f9081526002602052604081208054929550839290919061070c908490610a97565b9091555050505b6001600160a01b0383165f908152600260205260408120805484929061073a908490610a97565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161078691815260200190565b60405180910390a35060019392505050565b5f80604083850312156107a9575f80fd5b50508035926020909101359150565b5f6020808352835180828501525f5b818110156107e3578581018301518582016040015282016107c7565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610819575f80fd5b919050565b5f806040838503121561082f575f80fd5b61083883610803565b946020939093013593505050565b5f805f60608486031215610858575f80fd5b61086184610803565b925061086f60208501610803565b9150604084013590509250925092565b5f6020828403121561088f575f80fd5b61037382610803565b5f80604083850312156108a9575f80fd5b6108b283610803565b91506108c060208401610803565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561091757815f19048211156108fd576108fd6108c9565b8085161561090a57918102915b93841c93908002906108e2565b509250929050565b5f8261092d575060016102f7565b8161093957505f6102f7565b816001811461094f576002811461095957610975565b60019150506102f7565b60ff84111561096a5761096a6108c9565b50506001821b6102f7565b5060208310610133831016604e8410600b8410161715610998575081810a6102f7565b6109a283836108dd565b805f19048211156109b5576109b56108c9565b029392505050565b5f61037360ff84168361091f565b80820281158282048414176102f7576102f76108c9565b818103818111156102f7576102f76108c9565b5f82610a0f57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015610a765784516001600160a01b031683529383019391830191600101610a51565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156102f7576102f76108c956fea26469706673582212202ee12c57b5a3157cc1c2c23b84e789f080be0d66bcfce39c1cc1bda0f3462cc764736f6c63430008140033
0x60806040525f80555f60015534801562000017575f80fd5b50620000266012600a620001db565b6200003690630c845880620001f2565b335f8181526002602090815260408083209490945530825260038152838220737a250d5630b4cf539739df2c5dacb4c659f2488d835290529182205f199055907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620000a56012600a620001db565b620000b590630c845880620001f2565b60405190815260200160405180910390a36200020c565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200012057815f1904821115620001045762000104620000cc565b808516156200011257918102915b93841c9390800290620000e5565b509250929050565b5f826200013857506001620001d5565b816200014657505f620001d5565b81600181146200015f57600281146200016a576200018a565b6001915050620001d5565b60ff8411156200017e576200017e620000cc565b50506001821b620001d5565b5060208310610133831016604e8410600b8410161715620001af575081810a620001d5565b620001bb8383620000e0565b805f1904821115620001d157620001d1620000cc565b0290505b92915050565b5f620001eb60ff84168362000128565b9392505050565b8082028115828204841417620001d557620001d5620000cc565b610ae0806200021a5f395ff3fe60806040526004361061009d575f3560e01c8063313ce56711610062578063313ce5671461018057806370a08231146101a657806395d89b41146101d1578063a9059cbb146101ff578063c9567bf91461021e578063dd62ed3e14610232575f80fd5b806306058c3d146100a857806306fdde03146100c9578063095ea7b31461011057806318160ddd1461013f57806323b872dd14610161575f80fd5b366100a457005b5f80fd5b3480156100b3575f80fd5b506100c76100c2366004610798565b610268565b005b3480156100d4575f80fd5b506100fa6040518060400160405280600681526020016547656c696f7360d01b81525081565b60405161010791906107b8565b60405180910390f35b34801561011b575f80fd5b5061012f61012a36600461081e565b610291565b6040519015158152602001610107565b34801561014a575f80fd5b506101536102fd565b604051908152602001610107565b34801561016c575f80fd5b5061012f61017b366004610846565b61031a565b34801561018b575f80fd5b50610194601281565b60405160ff9091168152602001610107565b3480156101b1575f80fd5b506101536101c036600461087f565b60026020525f908152604090205481565b3480156101dc575f80fd5b506100fa60405180604001604052806003815260200162674f5360e81b81525081565b34801561020a575f80fd5b5061012f61021936600461081e565b610367565b348015610229575f80fd5b506100c761037a565b34801561023d575f80fd5b5061015361024c366004610898565b600360209081525f928352604080842090915290825290205481565b337382e9e5b353b80acfe493354c70b6ba20f87de02914610287575f80fd5b5f91909155600155565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102eb9086815260200190565b60405180910390a35060015b92915050565b6103096012600a6109bd565b61031790630c8458806109cb565b81565b6001600160a01b0383165f90815260036020908152604080832033845290915281208054839190839061034e9084906109e2565b9091555061035f90508484846103c4565b949350505050565b5f6103733384846103c4565b9392505050565b337382e9e5b353b80acfe493354c70b6ba20f87de02914610399575f80fd5b600454600160a81b900460ff16156103af575f80fd5b6004805460ff60a81b1916600160a81b179055565b6004545f90600160a81b900460ff16806103fa57506001600160a01b0384167382e9e5b353b80acfe493354c70b6ba20f87de029145b8061042157506001600160a01b0383167382e9e5b353b80acfe493354c70b6ba20f87de029145b610429575f80fd5b600454600160a81b900460ff1615801561044c57506004546001600160a01b0316155b801561045757505f82115b1561047857600480546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0384165f908152600260205260408120805484929061049f9084906109e2565b90915550506004546001600160a01b0384811691161480156104cb5750600454600160a01b900460ff16155b801561050a575060646104e06012600a6109bd565b6104ee90630c8458806109cb565b6104f891906109f5565b305f9081526002602052604090205410155b15610694576004805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061055557610555610a14565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061059d5761059d610a14565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63791ac94760646105dd6012600a6109bd565b6105eb90630c8458806109cb565b6105f591906109f5565b5f8430426040518663ffffffff1660e01b8152600401610619959493929190610a28565b5f604051808303815f87803b158015610630575f80fd5b505af1158015610642573d5f803e3d5ffd5b50506040517382e9e5b353b80acfe493354c70b6ba20f87de02992504780156108fc029250905f818181858888f19350505050158015610684573d5f803e3d5ffd5b50506004805460ff60a01b191690555b6001600160a01b0384163014610713576004545f90605f906001600160a01b038781169116146106c6576001546106c9565b5f545b6106d390856109cb565b6106dd91906109f5565b90506106e981846109e2565b305f9081526002602052604081208054929550839290919061070c908490610a97565b9091555050505b6001600160a01b0383165f908152600260205260408120805484929061073a908490610a97565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161078691815260200190565b60405180910390a35060019392505050565b5f80604083850312156107a9575f80fd5b50508035926020909101359150565b5f6020808352835180828501525f5b818110156107e3578581018301518582016040015282016107c7565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610819575f80fd5b919050565b5f806040838503121561082f575f80fd5b61083883610803565b946020939093013593505050565b5f805f60608486031215610858575f80fd5b61086184610803565b925061086f60208501610803565b9150604084013590509250925092565b5f6020828403121561088f575f80fd5b61037382610803565b5f80604083850312156108a9575f80fd5b6108b283610803565b91506108c060208401610803565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561091757815f19048211156108fd576108fd6108c9565b8085161561090a57918102915b93841c93908002906108e2565b509250929050565b5f8261092d575060016102f7565b8161093957505f6102f7565b816001811461094f576002811461095957610975565b60019150506102f7565b60ff84111561096a5761096a6108c9565b50506001821b6102f7565b5060208310610133831016604e8410600b8410161715610998575081810a6102f7565b6109a283836108dd565b805f19048211156109b5576109b56108c9565b029392505050565b5f61037360ff84168361091f565b80820281158282048414176102f7576102f76108c9565b818103818111156102f7576102f76108c9565b5f82610a0f57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015610a765784516001600160a01b031683529383019391830191600101610a51565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156102f7576102f76108c956fea26469706673582212202ee12c57b5a3157cc1c2c23b84e789f080be0d66bcfce39c1cc1bda0f3462cc764736f6c63430008140033