0x608060405234801561001057600080fd5b50604051610a76380380610a7683398101604081905261002f916101d0565b604080518082018252600b81526a5465737420546f6b656e3360a81b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527f874bec032d15dc026ebae256fbf70e7a218cb3d3998d71102185d8649be24ecc818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015246608082018190523060a0808401919091528451808403909101815260c0909201909352805191012060035561010d3383610114565b505061020a565b61012d816000546101bb60201b61051a1790919060201c565b60009081556001600160a01b03831681526001602090815260409091205461015e91839061051a6101bb821b17901c565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906101af9085815260200190565b60405180910390a35050565b60006101c782846101e9565b90505b92915050565b6000602082840312156101e257600080fd5b5051919050565b808201808211156101ca57634e487b7160e01b600052601160045260246000fd5b61085d806102196000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b41146101eb578063a9059cbb1461020d578063d505accf14610220578063dd62ed3e1461023557600080fd5b80633644e515146101a257806370a08231146101ab5780637ecebe00146101cb57600080fd5b806306fdde03146100d4578063095ea7b31461011457806318160ddd1461013757806323b872dd1461014e57806330adf81f14610161578063313ce56714610188575b600080fd5b6100fe6040518060400160405280600b81526020016a5465737420546f6b656e3360a81b81525081565b60405161010b9190610641565b60405180910390f35b6101276101223660046106ab565b610260565b604051901515815260200161010b565b61014060005481565b60405190815260200161010b565b61012761015c3660046106d5565b610277565b6101407f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b610190601281565b60405160ff909116815260200161010b565b61014060035481565b6101406101b9366004610711565b60016020526000908152604090205481565b6101406101d9366004610711565b60046020526000908152604090205481565b6100fe6040518060400160405280600381526020016254543360e81b81525081565b61012761021b3660046106ab565b61030b565b61023361022e36600461072c565b610318565b005b61014061024336600461079f565b600260209081526000928352604080842090915290825290205481565b600061026d33848461052d565b5060015b92915050565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146102f6576001600160a01b03841660009081526002602090815260408083203384529091529020546102d1908361058f565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b61030184848461059b565b5060019392505050565b600061026d33848461059b565b428410156103575760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b60448201526064015b60405180910390fd5b6003546001600160a01b038816600090815260046020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b9190876103aa836107e8565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012060405160200161042392919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa15801561048e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906104c45750886001600160a01b0316816001600160a01b0316145b6105045760405162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015260640161034e565b61050f89898961052d565b505050505050505050565b60006105268284610801565b9392505050565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006105268284610814565b6001600160a01b0383166000908152600160205260409020546105be908261058f565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546105ed908261051a565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105829085815260200190565b600060208083528351808285015260005b8181101561066e57858101830151858201604001528201610652565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146106a657600080fd5b919050565b600080604083850312156106be57600080fd5b6106c78361068f565b946020939093013593505050565b6000806000606084860312156106ea57600080fd5b6106f38461068f565b92506107016020850161068f565b9150604084013590509250925092565b60006020828403121561072357600080fd5b6105268261068f565b600080600080600080600060e0888a03121561074757600080fd5b6107508861068f565b965061075e6020890161068f565b95506040880135945060608801359350608088013560ff8116811461078257600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156107b257600080fd5b6107bb8361068f565b91506107c96020840161068f565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b6000600182016107fa576107fa6107d2565b5060010190565b80820180821115610271576102716107d2565b81810381811115610271576102716107d256fea2646970667358221220c6b7ac9d6a2a0c91c337b0d90631a624684b1ac6491ba11e894c7faee216e7ed64736f6c63430008110033000000000000000000000000000000000000000000f8277896582678ac000000