60e06040526200001a67016345785d8a0000600019620003e6565b6200002890600019620003c0565b600655600060098190556062600a55600b819055602d600c819055600d829055600e819055600f919091556010557fa0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000060c0526013805462ffff0019166201000017905566071afd498d0000601455660aa87bee538000601555655af3107a4000601655348015620000b857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060065433600090815260026020908152604091829020929092557f7a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000608052805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a01559260048083019392829003018186803b1580156200018057600080fd5b505afa15801562000195573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bb91906200038e565b6040516364e329cb60e11b815230600482015273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4860248201526001600160a01b03919091169063c9c6539690604401602060405180830381600087803b1580156200021957600080fd5b505af11580156200022e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025491906200038e565b60601b6001600160601b03191660a0526001600560006200027d6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152600590925281208054831660019081179091557f0ca6016fc9be612d34231340ce243bd563272f8debdc64e6412b1ddd5fd2fa1c805484168217905573eaaf49b88f7ff19bb685e4a71bc8c8eda7139a7d9091527f4a85a9e47c2105879a8ace3c8154d8839bb80079ceb40063f50d20cd9d5df9bf8054909216179055620003313390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200037f91815260200190565b60405180910390a35062000409565b600060208284031215620003a157600080fd5b81516001600160a01b0381168114620003b957600080fd5b9392505050565b600082821015620003e157634e487b7160e01b600052601160045260246000fd5b500390565b6000826200040457634e487b7160e01b600052601260045260246000fd5b500690565b60805160601c60a05160601c60c05160601c612024620004a1600039600050506000818161034001528181610f6601528181610ff601528181611056015281816111300152818161122d0152818161126a015281816112ae015261133301526000818161027d01528181610fa3015281816112ea0152818161136f0152818161153201528181611561015261160401526120246000f3fe6080604052600436106101d05760003560e01c80638da5cb5b116100f7578063bb09d9b711610095578063d00efb2f11610064578063d00efb2f1461054e578063dd62ed3e14610564578063ea1644d5146105aa578063f2fde38b146105ca57600080fd5b8063bb09d9b7146104c1578063bfd79284146104e9578063c3c8cd8014610519578063c492f0461461052e57600080fd5b806395d89b41116100d157806395d89b41146101fe57806398a5c31514610461578063a2a957bb14610481578063a9059cbb146104a157600080fd5b80638da5cb5b1461040d5780638f70ccf71461042b5780638f9a55c01461044b57600080fd5b8063313ce5671161016f57806370a082311161013e57806370a08231146103a2578063715018a6146103c257806374010ece146103d75780637d1db4a5146103f757600080fd5b8063313ce5671461031257806349bd5a5e1461032e5780636b999053146103625780636d8aa8f81461038257600080fd5b80631694505e116101ab5780631694505e1461026b57806318160ddd146102b757806323b872dd146102dc5780632fd689e3146102fc57600080fd5b8062b8cf2a146101dc57806306fdde03146101fe578063095ea7b31461023b57600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b506101fc6101f7366004611ccc565b6105ea565b005b34801561020a57600080fd5b50604080518082018252600581526453482e414960d81b602082015290516102329190611dfe565b60405180910390f35b34801561024757600080fd5b5061025b610256366004611c1e565b610689565b6040519015158152602001610232565b34801561027757600080fd5b5061029f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610232565b3480156102c357600080fd5b5067016345785d8a00005b604051908152602001610232565b3480156102e857600080fd5b5061025b6102f7366004611be2565b6106a0565b34801561030857600080fd5b506102ce60165481565b34801561031e57600080fd5b5060405160098152602001610232565b34801561033a57600080fd5b5061029f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561036e57600080fd5b506101fc61037d366004611b94565b610709565b34801561038e57600080fd5b506101fc61039d366004611d98565b610754565b3480156103ae57600080fd5b506102ce6103bd366004611b94565b61079a565b3480156103ce57600080fd5b506101fc6107bc565b3480156103e357600080fd5b506101fc6103f2366004611db3565b610830565b34801561040357600080fd5b506102ce60145481565b34801561041957600080fd5b506000546001600160a01b031661029f565b34801561043757600080fd5b506101fc610446366004611d98565b61085f565b34801561045757600080fd5b506102ce60155481565b34801561046d57600080fd5b506101fc61047c366004611db3565b6108a0565b34801561048d57600080fd5b506101fc61049c366004611dcc565b6108cf565b3480156104ad57600080fd5b5061025b6104bc366004611c1e565b61090d565b3480156104cd57600080fd5b5061029f73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b3480156104f557600080fd5b5061025b610504366004611b94565b60116020526000908152604090205460ff1681565b34801561052557600080fd5b506101fc61091a565b34801561053a57600080fd5b506101fc610549366004611c48565b610971565b34801561055a57600080fd5b506102ce60085481565b34801561057057600080fd5b506102ce61057f366004611baf565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105b657600080fd5b506101fc6105c5366004611db3565b610a12565b3480156105d657600080fd5b506101fc6105e5366004611b94565b610a41565b6000546001600160a01b0316331461061d5760405162461bcd60e51b815260040161061490611e53565b60405180910390fd5b60005b81518110156106855760016011600084848151811061064157610641611f9a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061067d81611f69565b915050610620565b5050565b6000610696338484610b2b565b5060015b92915050565b60006106ad848484610c4f565b6106ff84336106fa85604051806060016040528060288152602001611fc7602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906113c2565b610b2b565b5060019392505050565b6000546001600160a01b031633146107335760405162461bcd60e51b815260040161061490611e53565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b0316331461077e5760405162461bcd60e51b815260040161061490611e53565b60138054911515620100000262ff000019909216919091179055565b6001600160a01b03811660009081526002602052604081205461069a906113fc565b6000546001600160a01b031633146107e65760405162461bcd60e51b815260040161061490611e53565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461085a5760405162461bcd60e51b815260040161061490611e53565b601455565b6000546001600160a01b031633146108895760405162461bcd60e51b815260040161061490611e53565b6013805460ff191691151591909117905543600855565b6000546001600160a01b031633146108ca5760405162461bcd60e51b815260040161061490611e53565b601655565b6000546001600160a01b031633146108f95760405162461bcd60e51b815260040161061490611e53565b600993909355600b91909155600a55600c55565b6000610696338484610c4f565b337343993a32190bf8bf8655ec85073a3619889904b3148061094f57503373eaaf49b88f7ff19bb685e4a71bc8c8eda7139a7d145b61095857600080fd5b60006109633061079a565b905061096e81611480565b50565b6000546001600160a01b0316331461099b5760405162461bcd60e51b815260040161061490611e53565b60005b82811015610a0c5781600560008686858181106109bd576109bd611f9a565b90506020020160208101906109d29190611b94565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a0481611f69565b91505061099e565b50505050565b6000546001600160a01b03163314610a3c5760405162461bcd60e51b815260040161061490611e53565b601555565b6000546001600160a01b03163314610a6b5760405162461bcd60e51b815260040161061490611e53565b6001600160a01b038116610ad05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610614565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b8d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610614565b6001600160a01b038216610bee5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610614565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cb35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610614565b6001600160a01b038216610d155760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610614565b60008111610d775760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610614565b601354610100900460ff1615610d9957610d9483838360006116b2565b505050565b6001600160a01b0383167343993a32190bf8bf8655ec85073a3619889904b314801590610de357506001600160a01b0382167343993a32190bf8bf8655ec85073a3619889904b314155b156111e35760135460ff16610e605760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610614565b601454811115610eb25760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610614565b6001600160a01b03831660009081526011602052604090205460ff16158015610ef457506001600160a01b03821660009081526011602052604090205460ff16155b610f4c5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610614565b600854610f5a906000611ef9565b4311158015610f9a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316145b8015610fd857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b8015610fed57506001600160a01b0382163014155b801561102b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b15611054576001600160a01b0382166000908152601160205260409020805460ff191660011790555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316146110fd576015548161109a8461079a565b6110a49190611ef9565b106110fd5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610614565b60006111083061079a565b601654909150811080159081906111275750601354610100900460ff16155b801561116557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b8015611179575060135462010000900460ff165b801561119e57506001600160a01b03851660009081526005602052604090205460ff16155b80156111c357506001600160a01b03841660009081526005602052604090205460ff16155b156111e05760145482106111d75760145491505b6111e082611480565b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061122557506001600160a01b03831660009081526005602052604090205460ff165b8061129f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03161415801561129f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b156112ac575060006113b6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614801561131f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b1561133157600954600d55600a54600e555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161480156113a457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614155b156113b657600b54600d55600c54600e555b610a0c848484846116b2565b600081848411156113e65760405162461bcd60e51b81526004016106149190611dfe565b5060006113f38486611f52565b95945050505050565b60006006548211156114635760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610614565b600061146d6116e0565b90506114798382611703565b9392505050565b6013805461ff00191661010017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114c4576114c4611f9a565b60200260200101906001600160a01b031690816001600160a01b03168152505073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb488160018151811061150c5761150c611f9a565b60200260200101906001600160a01b031690816001600160a01b031681525050611557307f000000000000000000000000000000000000000000000000000000000000000084610b2b565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635c11d795611591846002611703565b60008473eaaf49b88f7ff19bb685e4a71bc8c8eda7139a7d426040518663ffffffff1660e01b81526004016115ca959493929190611e88565b600060405180830381600087803b1580156115e457600080fd5b505af11580156115f8573d6000803e3d6000fd5b50506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150635c11d7959050611638846002611703565b6000847343993a32190bf8bf8655ec85073a3619889904b3426040518663ffffffff1660e01b8152600401611671959493929190611e88565b600060405180830381600087803b15801561168b57600080fd5b505af115801561169f573d6000803e3d6000fd5b50506013805461ff001916905550505050565b806116bf576116bf611745565b6116ca848484611773565b80610a0c57610a0c600f54600d55601054600e55565b60008060006116ed61186a565b90925090506116fc8282611703565b9250505090565b600061147983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118aa565b600d541580156117555750600e54155b1561175c57565b600d8054600f55600e805460105560009182905555565b600080600080600080611785876118d8565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506117b79087611935565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546117e69086611977565b6001600160a01b038916600090815260026020526040902055611808816119d6565b6118128483611a20565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161185791815260200190565b60405180910390a3505050505050505050565b600654600090819067016345785d8a00006118858282611703565b8210156118a15750506006549267016345785d8a000092509050565b90939092509050565b600081836118cb5760405162461bcd60e51b81526004016106149190611dfe565b5060006113f38486611f11565b60008060008060008060008060006118f58a600d54600e54611a44565b92509250925060006119056116e0565b905060008060006119188e878787611a99565b919e509c509a509598509396509194505050505091939550919395565b600061147983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113c2565b6000806119848385611ef9565b9050838110156114795760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610614565b60006119e06116e0565b905060006119ee8383611ae9565b30600090815260026020526040902054909150611a0b9082611977565b30600090815260026020526040902055505050565b600654611a2d9083611935565b600655600754611a3d9082611977565b6007555050565b6000808080611a5e6064611a588989611ae9565b90611703565b90506000611a716064611a588a89611ae9565b90506000611a8982611a838b86611935565b90611935565b9992985090965090945050505050565b6000808080611aa88886611ae9565b90506000611ab68887611ae9565b90506000611ac48888611ae9565b90506000611ad682611a838686611935565b939b939a50919850919650505050505050565b600082611af85750600061069a565b6000611b048385611f33565b905082611b118583611f11565b146114795760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610614565b80356001600160a01b0381168114611b7f57600080fd5b919050565b80358015158114611b7f57600080fd5b600060208284031215611ba657600080fd5b61147982611b68565b60008060408385031215611bc257600080fd5b611bcb83611b68565b9150611bd960208401611b68565b90509250929050565b600080600060608486031215611bf757600080fd5b611c0084611b68565b9250611c0e60208501611b68565b9150604084013590509250925092565b60008060408385031215611c3157600080fd5b611c3a83611b68565b946020939093013593505050565b600080600060408486031215611c5d57600080fd5b833567ffffffffffffffff80821115611c7557600080fd5b818601915086601f830112611c8957600080fd5b813581811115611c9857600080fd5b8760208260051b8501011115611cad57600080fd5b602092830195509350611cc39186019050611b84565b90509250925092565b60006020808385031215611cdf57600080fd5b823567ffffffffffffffff80821115611cf757600080fd5b818501915085601f830112611d0b57600080fd5b813581811115611d1d57611d1d611fb0565b8060051b604051601f19603f83011681018181108582111715611d4257611d42611fb0565b604052828152858101935084860182860187018a1015611d6157600080fd5b600095505b83861015611d8b57611d7781611b68565b855260019590950194938601938601611d66565b5098975050505050505050565b600060208284031215611daa57600080fd5b61147982611b84565b600060208284031215611dc557600080fd5b5035919050565b60008060008060808587031215611de257600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b81811015611e2b57858101830151858201604001528201611e0f565b81811115611e3d576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ed85784516001600160a01b031683529383019391830191600101611eb3565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611f0c57611f0c611f84565b500190565b600082611f2e57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f4d57611f4d611f84565b500290565b600082821015611f6457611f64611f84565b500390565b6000600019821415611f7d57611f7d611f84565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206c982c4488d3ceaa53ab5b9d39557815938144309ed8426cccfd3ebfb479c46664736f6c63430008070033