60806040525f8055600260015534801562000018575f80fd5b50620000276012600a620001dc565b62000037906305f5e100620001f3565b335f8181526002602090815260408083209490945530825260038152838220737a250d5630b4cf539739df2c5dacb4c659f2488d835290529182205f199055907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620000a66012600a620001dc565b620000b6906305f5e100620001f3565b60405190815260200160405180910390a36200020d565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200012157815f1904821115620001055762000105620000cd565b808516156200011357918102915b93841c9390800290620000e6565b509250929050565b5f826200013957506001620001d6565b816200014757505f620001d6565b81600181146200016057600281146200016b576200018b565b6001915050620001d6565b60ff8411156200017f576200017f620000cd565b50506001821b620001d6565b5060208310610133831016604e8410600b8410161715620001b0575081810a620001d6565b620001bc8383620000e1565b805f1904821115620001d257620001d2620000cd565b0290505b92915050565b5f620001ec60ff84168362000129565b9392505050565b8082028115828204841417620001d657620001d6620000cd565b610ae4806200021b5f395ff3fe60806040526004361061009d575f3560e01c8063415946e411610062578063415946e4146101875780636ffa6406146101a857806370a08231146101bc57806395d89b41146101e7578063a9059cbb14610217578063dd62ed3e14610236575f80fd5b806306fdde03146100a8578063095ea7b3146100f157806318160ddd1461012057806323b872dd14610142578063313ce56714610161575f80fd5b366100a457005b5f80fd5b3480156100b3575f80fd5b506100db60405180604001604052806008815260200167526576697665414960c01b81525081565b6040516100e8919061079c565b60405180910390f35b3480156100fc575f80fd5b5061011061010b366004610802565b61026c565b60405190151581526020016100e8565b34801561012b575f80fd5b506101346102d8565b6040519081526020016100e8565b34801561014d575f80fd5b5061011061015c36600461082a565b6102f5565b34801561016c575f80fd5b50610175601281565b60405160ff90911681526020016100e8565b348015610192575f80fd5b506101a66101a1366004610863565b610342565b005b3480156101b3575f80fd5b506101a661036b565b3480156101c7575f80fd5b506101346101d6366004610883565b60026020525f908152604090205481565b3480156101f2575f80fd5b506100db60405180604001604052806005815260200164525645414960d81b81525081565b348015610222575f80fd5b50610110610231366004610802565b6103b5565b348015610241575f80fd5b5061013461025036600461089c565b600360209081525f928352604080842090915290825290205481565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102c69086815260200190565b60405180910390a35060015b92915050565b6102e46012600a6109c1565b6102f2906305f5e1006109cf565b81565b6001600160a01b0383165f9081526003602090815260408083203384529091528120805483919083906103299084906109e6565b9091555061033a90508484846103c8565b949350505050565b33735f481430e68885098b571110360ba44487e8474914610361575f80fd5b5f91909155600155565b33735f481430e68885098b571110360ba44487e847491461038a575f80fd5b600454600160a81b900460ff16156103a0575f80fd5b6004805460ff60a81b1916600160a81b179055565b5f6103c13384846103c8565b9392505050565b6004545f90600160a81b900460ff16806103fe57506001600160a01b038416735f481430e68885098b571110360ba44487e84749145b8061042557506001600160a01b038316735f481430e68885098b571110360ba44487e84749145b61042d575f80fd5b600454600160a81b900460ff1615801561045057506004546001600160a01b0316155b801561045b57505f82115b1561047c57600480546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0384165f90815260026020526040812080548492906104a39084906109e6565b90915550506004546001600160a01b0384811691161480156104cf5750600454600160a01b900460ff16155b801561050e575060646104e46012600a6109c1565b6104f2906305f5e1006109cf565b6104fc91906109f9565b305f9081526002602052604090205410155b15610698576004805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061055957610559610a18565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106105a1576105a1610a18565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63791ac94760646105e16012600a6109c1565b6105ef906305f5e1006109cf565b6105f991906109f9565b5f8430426040518663ffffffff1660e01b815260040161061d959493929190610a2c565b5f604051808303815f87803b158015610634575f80fd5b505af1158015610646573d5f803e3d5ffd5b5050604051735f481430e68885098b571110360ba44487e8474992504780156108fc029250905f818181858888f19350505050158015610688573d5f803e3d5ffd5b50506004805460ff60a01b191690555b6001600160a01b0384163014610717576004545f906064906001600160a01b038781169116146106ca576001546106cd565b5f545b6106d790856109cf565b6106e191906109f9565b90506106ed81846109e6565b305f90815260026020526040812080549295508392909190610710908490610a9b565b9091555050505b6001600160a01b0383165f908152600260205260408120805484929061073e908490610a9b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161078a91815260200190565b60405180910390a35060019392505050565b5f6020808352835180828501525f5b818110156107c7578581018301518582016040015282016107ab565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107fd575f80fd5b919050565b5f8060408385031215610813575f80fd5b61081c836107e7565b946020939093013593505050565b5f805f6060848603121561083c575f80fd5b610845846107e7565b9250610853602085016107e7565b9150604084013590509250925092565b5f8060408385031215610874575f80fd5b50508035926020909101359150565b5f60208284031215610893575f80fd5b6103c1826107e7565b5f80604083850312156108ad575f80fd5b6108b6836107e7565b91506108c4602084016107e7565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561091b57815f1904821115610901576109016108cd565b8085161561090e57918102915b93841c93908002906108e6565b509250929050565b5f82610931575060016102d2565b8161093d57505f6102d2565b8160018114610953576002811461095d57610979565b60019150506102d2565b60ff84111561096e5761096e6108cd565b50506001821b6102d2565b5060208310610133831016604e8410600b841016171561099c575081810a6102d2565b6109a683836108e1565b805f19048211156109b9576109b96108cd565b029392505050565b5f6103c160ff841683610923565b80820281158282048414176102d2576102d26108cd565b818103818111156102d2576102d26108cd565b5f82610a1357634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015610a7a5784516001600160a01b031683529383019391830191600101610a55565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156102d2576102d26108cd56fea2646970667358221220f890bb4d6d5f06791d1b5c409e7c2ebcdcb81c87faeed2c10fc1bf1ab56f20c064736f6c63430008140033