60806040523480156200001157600080fd5b50600054610100900460ff1615808015620000335750600054600160ff909116105b806200004f5750303b1580156200004f575060005460ff166001145b620000b75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff191660011790558015620000db576000805461ff0019166101001790555b801562000122576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50614bf480620001336000396000f3fe6080604052600436106102545760003560e01c806384b0196e1161014057806384b0196e146105ab5780638e539e8c146105d35780638f0fefbb146105f35780639010d07c1461060657806391d148541461062657806391ddadf41461064657806392928e0414610672578063938e3d7b1461069257806395d89b41146106b25780639ab24eb0146106c7578063a0a8e460146106e7578063a217fddf146106fb578063a457c2d714610710578063a9059cbb14610730578063ac9650d814610750578063c1b606e21461077d578063c3cda520146107bc578063ca15c873146107dc578063cb2ef6f7146107fc578063d1959f481461081d578063d45573f61461083d578063d505accf14610874578063d547741f14610894578063dd62ed3e146108b4578063e8a3d485146108d4578063f1127ed8146108e957600080fd5b806301ffc9a71461025957806306fdde031461028e578063079fe40e146102b0578063095ea7b3146102e957806318160ddd146103095780631e7ac4881461032857806323b872dd1461034a578063248a9ca31461036a5780632f2ff15d1461038a578063313ce567146103aa5780633644e515146103cc57806336568abe146103e157806339509351146104015780633a46b1a81461042157806342966c6814610441578063449a52f8146104615780634bf5d7e914610481578063587cde1e146104965780635c19a95c146104b65780636f4f2837146104d65780636fcfff45146104f657806370a082311461052b57806379cc67901461054b5780637cb647591461056b5780637ecebe001461058b575b600080fd5b34801561026557600080fd5b50610279610274366004613e5d565b610933565b60405190151581526020015b60405180910390f35b34801561029a57600080fd5b506102a361095e565b6040516102859190613ed7565b3480156102bc57600080fd5b506101fe546102d1906001600160a01b031681565b6040516001600160a01b039091168152602001610285565b3480156102f557600080fd5b50610279610304366004613eff565b6109f0565b34801561031557600080fd5b506067545b604051908152602001610285565b34801561033457600080fd5b50610348610343366004613eff565b610a08565b005b34801561035657600080fd5b50610279610365366004613f2b565b610ad0565b34801561037657600080fd5b5061031a610385366004613f6c565b610af4565b34801561039657600080fd5b506103486103a5366004613f85565b610b0a565b3480156103b657600080fd5b5060125b60405160ff9091168152602001610285565b3480156103d857600080fd5b5061031a610b2b565b3480156103ed57600080fd5b506103486103fc366004613f85565b610b3a565b34801561040d57600080fd5b5061027961041c366004613eff565b610bb8565b34801561042d57600080fd5b5061031a61043c366004613eff565b610bda565b34801561044d57600080fd5b5061034861045c366004613f6c565b610c34565b34801561046d57600080fd5b5061034861047c366004613eff565b610c41565b34801561048d57600080fd5b506102a3610c9d565b3480156104a257600080fd5b506102d16104b1366004613fb5565b610d35565b3480156104c257600080fd5b506103486104d1366004613fb5565b610d54565b3480156104e257600080fd5b506103486104f1366004613fb5565b610d5e565b34801561050257600080fd5b50610516610511366004613fb5565b610db5565b60405163ffffffff9091168152602001610285565b34801561053757600080fd5b5061031a610546366004613fb5565b610dd8565b34801561055757600080fd5b50610348610566366004613eff565b610df3565b34801561057757600080fd5b50610348610586366004613f6c565b610e08565b34801561059757600080fd5b5061031a6105a6366004613fb5565b610e37565b3480156105b757600080fd5b506105c0610e55565b6040516102859796959493929190613fd2565b3480156105df57600080fd5b5061031a6105ee366004613f6c565b610ef3565b6103486106013660046140ac565b610f2f565b34801561061257600080fd5b506102d1610621366004614108565b610fc4565b34801561063257600080fd5b50610279610641366004613f85565b610fdd565b34801561065257600080fd5b5061065b611009565b60405165ffffffffffff9091168152602001610285565b34801561067e57600080fd5b5061034861068d366004614197565b611014565b34801561069e57600080fd5b506103486106ad366004614245565b6113d5565b3480156106be57600080fd5b506102a36113f4565b3480156106d357600080fd5b5061031a6106e2366004613fb5565b611403565b3480156106f357600080fd5b5060016103ba565b34801561070757600080fd5b5061031a600081565b34801561071c57600080fd5b5061027961072b366004613eff565b611486565b34801561073c57600080fd5b5061027961074b366004613eff565b611501565b34801561075c57600080fd5b5061077061076b3660046142ca565b61150f565b60405161028591906142ff565b34801561078957600080fd5b5061079d6107983660046140ac565b6115f8565b6040805192151583526001600160a01b03909116602083015201610285565b3480156107c857600080fd5b506103486107d7366004614379565b61164e565b3480156107e857600080fd5b5061031a6107f7366004613f6c565b611780565b34801561080857600080fd5b506a546f6b656e45524332304d60a81b61031a565b34801561082957600080fd5b506103486108383660046143d3565b611798565b34801561084957600080fd5b506101fd546101fc54604080516001600160a01b03909316835261ffff909116602083015201610285565b34801561088057600080fd5b5061034861088f36600461442e565b611895565b3480156108a057600080fd5b506103486108af366004613f85565b6119f9565b3480156108c057600080fd5b5061031a6108cf36600461449c565b611a15565b3480156108e057600080fd5b506102a3611a40565b3480156108f557600080fd5b506109096109043660046144ca565b611acf565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610285565b60006001600160e01b03198216635a05180f60e01b1480610958575061095882611b53565b92915050565b60606068805461096d90614501565b80601f016020809104026020016040519081016040528092919081815260200182805461099990614501565b80156109e65780601f106109bb576101008083540402835291602001916109e6565b820191906000526020600020905b8154815290600101906020018083116109c957829003601f168201915b5050505050905090565b6000336109fe818585611b88565b5060019392505050565b6000610a1381611cac565b612710821115610a5c5760405162461bcd60e51b815260206004820152600f60248201526e65786365656473204d41585f42505360881b60448201526064015b60405180910390fd5b6101fc80546001600160801b0319166001600160401b0384161790556101fd80546001600160a01b0385166001600160a01b031990911681179091556040518381527fe2497bd806ec41a6e0dd992c29a72efc0ef8fec9092d1978fd4a1e00b2f183049060200160405180910390a2505050565b600033610ade858285611cb6565b610ae9858585611d2a565b506001949350505050565b6000908152610194602052604090206001015490565b610b1382610af4565b610b1c81611cac565b610b268383611ed4565b505050565b6000610b35611ef7565b905090565b6001600160a01b0381163314610baa5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610a53565b610bb48282611f01565b5050565b6000336109fe818585610bcb8383611a15565b610bd5919061454b565b611b88565b6000610be4611009565b65ffffffffffff168210610c0a5760405162461bcd60e51b8152600401610a539061455e565b6001600160a01b038316600090815261013160205260409020610c2d9083611f24565b9392505050565b610c3e338261200c565b50565b610c59600080516020614b7f83398151915233610fdd565b610c935760405162461bcd60e51b815260206004820152600b60248201526a3737ba1036b4b73a32b91760a91b6044820152606401610a53565b610bb48282612016565b606043610ca8611009565b65ffffffffffff1614610cfd5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f64650000006044820152606401610a53565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b6001600160a01b03908116600090815261013060205260409020541690565b610c3e3382612067565b6000610d6981611cac565b6101fe80546001600160a01b0319166001600160a01b0384169081179091556040517f299d17e95023f496e0ffc4909cff1a61f74bb5eb18de6f900f4155bfa1b3b33390600090a25050565b6001600160a01b03811660009081526101316020526040812054610958906120e8565b6001600160a01b031660009081526065602052604090205490565b610dfe823383611cb6565b610bb4828261200c565b610e10612151565b610e2d576040516327e8d25560e01b815260040160405180910390fd5b610c3e816101f855565b6001600160a01b038116600090815260fd6020526040812054610958565b60006060806000806000606060c9546000801b148015610e75575060ca54155b610eb95760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610a53565b610ec161216b565b610ec961217a565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000610efd611009565b65ffffffffffff168210610f235760405162461bcd60e51b8152600401610a539061455e565b61095861013283611f24565b610f37612189565b6000610f448484846121e2565b90506000610f556020860186613fb5565b9050610f608561237d565b610f6e818660400135612016565b806001600160a01b0316826001600160a01b03167fc4d88b1adde72eb5acf63f3e219ef5b223262233acf507c3b171277c91973c6787604051610fb191906145a8565b60405180910390a35050610b2660018055565b60008281526101c660205260408120610c2d9083612551565b6000918252610194602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610b354361255d565b600054610100900460ff16158080156110345750600054600160ff909116105b806110555750611043306125c4565b158015611055575060005460ff166001145b6110b85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610a53565b6000805460ff1916600117905580156110db576000805461ff0019166101001790555b6110e36125d3565b6000846001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa158015611123573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261114b919081019061464a565b90506000856001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801561118d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111b5919081019061464a565b90506111c082612604565b6111ca828261264e565b6111d4856101f855565b6101f980546001600160a01b0319166001600160a01b0388161790556101fb6111fd8582614725565b50856001600160a01b031663079fe40e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561123c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126091906147de565b6101fe80546001600160a01b0319166001600160a01b0392831617905560408051636a2ab9fb60e11b815281519289169263d45573f6926004808401939192918290030181865afa1580156112b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dd91906147fb565b6101fc80546001600160801b03191661ffff9092169190911790556101fd80546001600160a01b039092166001600160a01b031990921691909117905561132560008861268e565b61133d600080516020614b7f8339815191528861268e565b611356600080516020614b18833981519152600061268e565b61136e600080516020614b388339815191528861268e565b611386600080516020614b3883398151915280612698565b505080156113ce576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60006113e081611cac565b6101fb6113ee838583614831565b50505050565b60606069805461096d90614501565b6001600160a01b038116600090815261013160205260408120548015611473576001600160a01b03831660009081526101316020526040902080546000198301908110611452576114526148ea565b600091825260209091200154600160201b90046001600160e01b0316611476565b60005b6001600160e01b03169392505050565b600033816114948286611a15565b9050838110156114f45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a53565b610ae98286868403611b88565b6000336109fe818585611d2a565b6060816001600160401b038111156115295761152961412a565b60405190808252806020026020018201604052801561155c57816020015b60608152602001906001900390816115475790505b50905060005b828110156115f1576115cc30858584818110611580576115806148ea565b90506020028101906115929190614900565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506126ec92505050565b8282815181106115de576115de6148ea565b6020908102919091010152600101611562565b5092915050565b6000806000611608868686612711565b60e087013560009081526101ff602052604090205490915060ff161580156116435750611643600080516020614b7f83398151915282610fdd565b969095509350505050565b8342111561169e5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610a53565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090611718906117109060a00160405160208183030381529060405280519060200120612775565b8585856127a2565b9050611723816127ca565b861461176d5760405162461bcd60e51b81526020600482015260196024820152784552433230566f7465733a20696e76616c6964206e6f6e636560381b6044820152606401610a53565b6117778188612067565b50505050505050565b60008181526101c660205260408120610958906127f2565b6001600160a01b03841660009081526101fa6020526040902054849084116117d7578484604051632167f45b60e01b8152600401610a53929190614946565b600061182484846117e86101f85490565b6040516001600160601b031960608c901b166020820152603481018a9052605401604051602081830303815290604052805190602001206127fc565b50905080611849578585604051630b860e6360e11b8152600401610a53929190614946565b6001600160a01b03821660009081526101fa602052604081205461186d908761495f565b6001600160a01b03841660009081526101fa6020526040902087905590506117778782610c93565b834211156118e55760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610a53565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886119148c6127ca565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061196f82612775565b9050600061197f828787876127a2565b9050896001600160a01b0316816001600160a01b0316146119e25760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610a53565b6119ed8a8a8a611b88565b50505050505050505050565b611a0282610af4565b611a0b81611cac565b610b268383611f01565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b6101fb8054611a4e90614501565b80601f0160208091040260200160405190810160405280929190818152602001828054611a7a90614501565b8015611ac75780601f10611a9c57610100808354040283529160200191611ac7565b820191906000526020600020905b815481529060010190602001808311611aaa57829003601f168201915b505050505081565b60408051808201909152600080825260208201526001600160a01b038316600090815261013160205260409020805463ffffffff8416908110611b1457611b146148ea565b60009182526020918290206040805180820190915291015463ffffffff81168252600160201b90046001600160e01b0316918101919091529392505050565b60006001600160e01b03198216637965db0b60e01b148061095857506301ffc9a760e01b6001600160e01b0319831614610958565b6001600160a01b038316611bea5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a53565b6001600160a01b038216611c4b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a53565b6001600160a01b0383811660008181526066602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b610c3e813361288a565b6000611cc28484611a15565b905060001981146113ee5781811015611d1d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a53565b6113ee8484848403611b88565b6001600160a01b038316611d8e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a53565b6001600160a01b038216611df05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a53565b611dfb8383836128e3565b6001600160a01b03831660009081526065602052604090205481811015611e735760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a53565b6001600160a01b038085166000818152606560205260408082208686039055928616808252908390208054860190559151600080516020614b9f83398151915290611ec19086815260200190565b60405180910390a36113ee8484846129a4565b611ede82826129af565b60008281526101c660205260409020610b269082612a36565b6000610b35612a4b565b611f0b8282612abf565b60008281526101c660205260409020610b269082612b27565b815460009081816005811115611f7e576000611f3f84612b3c565b611f49908561495f565b600088815260209020909150869082015463ffffffff161115611f6e57809150611f7c565b611f7981600161454b565b92505b505b80821015611fcb576000611f928383612c24565b600088815260209020909150869082015463ffffffff161115611fb757809150611fc5565b611fc281600161454b565b92505b50611f7e565b8015611ff65760008681526020902081016000190154600160201b90046001600160e01b0316611ff9565b60005b6001600160e01b03169695505050505050565b610bb48282612c3f565b6120208282612c58565b816001600160a01b03167f3f2c9d57c068687834f0de942a9babb9e5acab57d516d3480a3c16ee165a42738260405161205b91815260200190565b60405180910390a25050565b600061207283610d35565b9050600061207f84610dd8565b6001600160a01b038581166000818152610130602052604080822080546001600160a01b031916898616908117909155905194955093928616927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46113ee828483612c62565b600063ffffffff82111561214d5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610a53565b5090565b6000610b35600080516020614b3883398151915233610fdd565b606060cb805461096d90614501565b606060cc805461096d90614501565b6002600154036121db5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a53565b6002600155565b60008060006121f28686866115f8565b91509150816122375760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b6044820152606401610a53565b4261224860c0880160a08901614972565b6001600160801b03161115801561227757504261226b60e0880160c08901614972565b6001600160801b031610155b6122b55760405162461bcd60e51b815260206004820152600f60248201526e1c995c5d595cdd08195e1c1a5c9959608a1b6044820152606401610a53565b60006122c46020880188613fb5565b6001600160a01b0316036123105760405162461bcd60e51b81526020600482015260136024820152721c9958da5c1a595b9d081d5b9919599a5b9959606a1b6044820152606401610a53565b60008660400135116123545760405162461bcd60e51b815260206004820152600d60248201526c7a65726f207175616e7469747960981b6044820152606401610a53565b60e086013560009081526101ff60205260409020805460ff191660011790559150509392505050565b80606001356000036123c0573415610c3e5760405162461bcd60e51b81526020600482015260066024820152652156616c756560d01b6044820152606401610a53565b6101fc54600090612710906123e2906001600160801b0316606085013561498d565b6123ec91906149ba565b905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61241360a0840160808501613fb5565b6001600160a01b031603612472578160600135341461246d5760405162461bcd60e51b815260206004820152601660248201527536bab9ba1039b2b732103a37ba30b610383934b1b29760511b6044820152606401610a53565b6124b5565b34156124b55760405162461bcd60e51b81526020600482015260126024820152716d73672076616c7565206e6f74207a65726f60701b6044820152606401610a53565b6000806124c86040850160208601613fb5565b6001600160a01b0316146124eb576124e66040840160208501613fb5565b6124f9565b6101fe546001600160a01b03165b905061252361250e60a0850160808601613fb5565b6101fd5433906001600160a01b031685612da1565b610b2661253660a0850160808601613fb5565b338361254686606089013561495f565b612da1565b60018055565b6000610c2d8383612de7565b600065ffffffffffff82111561214d5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610a53565b6001600160a01b03163b151590565b600054610100900460ff166125fa5760405162461bcd60e51b8152600401610a53906149dc565b612602612e11565b565b600054610100900460ff1661262b5760405162461bcd60e51b8152600401610a53906149dc565b610c3e81604051806040016040528060018152602001603160f81b815250612e38565b600054610100900460ff166126755760405162461bcd60e51b8152600401610a53906149dc565b60686126818382614725565b506069610b268282614725565b610bb48282611ed4565b60006126a383610af4565b60008481526101946020526040808220600101859055519192508391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6060610c2d8383604051806060016040528060278152602001614b5860279139612e87565b600061276d83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612767925061275b9150889050612eff565b80519060200120612775565b90612ff3565b949350505050565b6000610958612782611ef7565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006127b387878787613017565b915091506127c0816130ce565b5095945050505050565b6001600160a01b038116600090815260fd602052604090208054600181018255905b50919050565b6000610958825490565b6000808281805b878110156128785761281660028361498d565b9150600089898381811061282c5761282c6148ea565b905060200201359050808411612851576000848152602082905260409020935061286f565b6000818152602085905260409020935061286c60018461454b565b92505b50600101612803565b50908514925090505b94509492505050565b6128948282610fdd565b610bb4576128a181613213565b6128ac836020613225565b6040516020016128bd929190614a27565b60408051601f198184030181529082905262461bcd60e51b8252610a5391600401613ed7565b6128fc600080516020614b188339815191526000610fdd565b15801561291157506001600160a01b03831615155b801561292557506001600160a01b03821615155b15610b2657612942600080516020614b1883398151915284610fdd565b806129605750612960600080516020614b1883398151915283610fdd565b610b265760405162461bcd60e51b81526020600482015260156024820152743a3930b739b332b939903932b9ba3934b1ba32b21760591b6044820152606401610a53565b610b268383836133c0565b6129b98282610fdd565b610bb4576000828152610194602090815260408083206001600160a01b03851684529091529020805460ff191660011790556129f23390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610c2d836001600160a01b0384166133db565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612a7661342a565b612a7e613483565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b612ac98282610fdd565b15610bb4576000828152610194602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610c2d836001600160a01b0384166134b4565b600081600003612b4e57506000919050565b60006001612b5b846135a7565b901c6001901b90506001818481612b7457612b746149a4565b048201901c90506001818481612b8c57612b8c6149a4565b048201901c90506001818481612ba457612ba46149a4565b048201901c90506001818481612bbc57612bbc6149a4565b048201901c90506001818481612bd457612bd46149a4565b048201901c90506001818481612bec57612bec6149a4565b048201901c90506001818481612c0457612c046149a4565b048201901c9050610c2d81828581612c1e57612c1e6149a4565b0461363b565b6000612c3360028484186149ba565b610c2d9084841661454b565b612c498282613651565b6113ee61013261378683613792565b610bb48282613904565b816001600160a01b0316836001600160a01b031614158015612c845750600081115b15610b26576001600160a01b03831615612d13576001600160a01b0383166000908152610131602052604081208190612cc09061378685613792565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612d08929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610b26576001600160a01b0382166000908152610131602052604081208190612d4a9061398f85613792565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612d92929190918252602082015260400190565b60405180910390a25050505050565b80156113ee5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03851601612ddb57612dd6828261399b565b6113ee565b6113ee84848484613a13565b6000826000018281548110612dfe57612dfe6148ea565b9060005260206000200154905092915050565b600054610100900460ff1661254b5760405162461bcd60e51b8152600401610a53906149dc565b600054610100900460ff16612e5f5760405162461bcd60e51b8152600401610a53906149dc565b60cb612e6b8382614725565b5060cc612e788282614725565b5050600060c981905560ca5550565b6060600080856001600160a01b031685604051612ea49190614a96565b600060405180830381855af49150503d8060008114612edf576040519150601f19603f3d011682016040523d82523d6000602084013e612ee4565b606091505b5091509150612ef586838387613a66565b9695505050505050565b60607fbac245dbd9b8b2bb334c0675db20a7a7a8506de563990c4ce3207f4c3c5b75e1612f2f6020840184613fb5565b612f3f6040850160208601613fb5565b60408501356060860135612f5960a0880160808901613fb5565b612f6960c0890160a08a01614972565b612f7960e08a0160c08b01614972565b6040805160208101999099526001600160a01b03978816908901529486166060880152608087019390935260a086019190915290921660c08401526001600160801b0391821660e0808501919091529116610100830152830135610120820152610140016040516020818303038152906040529050919050565b60008060006130028585613add565b9150915061300f816130ce565b509392505050565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038311156130445750600090506003612881565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613098573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166130c157600060019250925050612881565b9660009650945050505050565b60008160048111156130e2576130e2614ab2565b036130ea5750565b60018160048111156130fe576130fe614ab2565b036131465760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610a53565b600281600481111561315a5761315a614ab2565b036131a75760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a53565b60038160048111156131bb576131bb614ab2565b03610c3e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610a53565b60606109586001600160a01b03831660145b6060600061323483600261498d565b61323f90600261454b565b6001600160401b038111156132565761325661412a565b6040519080825280601f01601f191660200182016040528015613280576020820181803683370190505b509050600360fc1b8160008151811061329b5761329b6148ea565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106132ca576132ca6148ea565b60200101906001600160f81b031916908160001a90535060006132ee84600261498d565b6132f990600161454b565b90505b6001811115613371576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061332d5761332d6148ea565b1a60f81b828281518110613343576133436148ea565b60200101906001600160f81b031916908160001a90535060049490941c9361336a81614ac8565b90506132fc565b508315610c2d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610a53565b610b266133cc84610d35565b6133d584610d35565b83612c62565b600081815260018301602052604081205461342257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610958565b506000610958565b60008061343561216b565b80519091501561344c578051602090910120919050565b60c954801561345b5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b60008061348e61217a565b8051909150156134a5578051602090910120919050565b60ca54801561345b5792915050565b6000818152600183016020526040812054801561359d5760006134d860018361495f565b85549091506000906134ec9060019061495f565b905081811461355157600086600001828154811061350c5761350c6148ea565b906000526020600020015490508087600001848154811061352f5761352f6148ea565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061356257613562614adf565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610958565b6000915050610958565b600080608083901c156135bc57608092831c92015b604083901c156135ce57604092831c92015b602083901c156135e057602092831c92015b601083901c156135f257601092831c92015b600883901c1561360457600892831c92015b600483901c1561361657600492831c92015b600283901c1561362857600292831c92015b600183901c156109585760010192915050565b600081831061364a5781610c2d565b5090919050565b6001600160a01b0382166136b15760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a53565b6136bd826000836128e3565b6001600160a01b038216600090815260656020526040902054818110156137315760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a53565b6001600160a01b0383166000818152606560209081526040808320868603905560678054879003905551858152919291600080516020614b9f833981519152910160405180910390a3610b26836000846129a4565b6000610c2d828461495f565b825460009081908181156137de5760008781526020902082016000190160408051808201909152905463ffffffff81168252600160201b90046001600160e01b031660208201526137f3565b60408051808201909152600080825260208201525b905080602001516001600160e01b0316935061381384868863ffffffff16565b925060008211801561383d5750613828611009565b65ffffffffffff16816000015163ffffffff16145b156138815761384b83613b22565b60008881526020902083016000190180546001600160e01b0392909216600160201b0263ffffffff9092169190911790556138fa565b8660405180604001604052806138a5613898611009565b65ffffffffffff166120e8565b63ffffffff1681526020016138b986613b22565b6001600160e01b039081169091528254600181018455600093845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b5050935093915050565b61390e8282613b8b565b6067546001600160e01b0310156139805760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608401610a53565b6113ee61013261398f83613792565b6000610c2d828461454b565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146139e8576040519150601f19603f3d011682016040523d82523d6000602084013e6139ed565b606091505b5050905080610b26578282604051635fdc4ec160e11b8152600401610a53929190614946565b816001600160a01b0316836001600160a01b031603156113ee57306001600160a01b03841603613a5157612dd66001600160a01b0385168383613c4e565b6113ee6001600160a01b038516848484613ca4565b60608315613ad3578251600003613acc57613a80856125c4565b613acc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a53565b508161276d565b61276d8383613cdc565b6000808251604103613b135760208301516040840151606085015160001a613b0787828585613017565b94509450505050613b1b565b506000905060025b9250929050565b60006001600160e01b0382111561214d5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610a53565b6001600160a01b038216613be15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a53565b613bed600083836128e3565b8060676000828254613bff919061454b565b90915550506001600160a01b038216600081815260656020908152604080832080548601905551848152600080516020614b9f833981519152910160405180910390a3610bb4600083836129a4565b610b268363a9059cbb60e01b8484604051602401613c6d929190614946565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613d06565b6040516001600160a01b03808516602483015283166044820152606481018290526113ee9085906323b872dd60e01b90608401613c6d565b815115613cec5781518083602001fd5b8060405162461bcd60e51b8152600401610a539190613ed7565b6000613d5b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613dd89092919063ffffffff16565b805190915015610b265780806020019051810190613d799190614af5565b610b265760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a53565b606061276d848460008585600080866001600160a01b03168587604051613dff9190614a96565b60006040518083038185875af1925050503d8060008114613e3c576040519150601f19603f3d011682016040523d82523d6000602084013e613e41565b606091505b5091509150613e5287838387613a66565b979650505050505050565b600060208284031215613e6f57600080fd5b81356001600160e01b031981168114610c2d57600080fd5b60005b83811015613ea2578181015183820152602001613e8a565b50506000910152565b60008151808452613ec3816020860160208601613e87565b601f01601f19169290920160200192915050565b602081526000610c2d6020830184613eab565b6001600160a01b0381168114610c3e57600080fd5b60008060408385031215613f1257600080fd5b8235613f1d81613eea565b946020939093013593505050565b600080600060608486031215613f4057600080fd5b8335613f4b81613eea565b92506020840135613f5b81613eea565b929592945050506040919091013590565b600060208284031215613f7e57600080fd5b5035919050565b60008060408385031215613f9857600080fd5b823591506020830135613faa81613eea565b809150509250929050565b600060208284031215613fc757600080fd5b8135610c2d81613eea565b60ff60f81b881681526000602060e06020840152613ff360e084018a613eab565b8381036040850152614005818a613eab565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b818110156140595783518352928401929184019160010161403d565b50909c9b505050505050505050505050565b60008083601f84011261407d57600080fd5b5081356001600160401b0381111561409457600080fd5b602083019150836020828501011115613b1b57600080fd5b60008060008385036101208112156140c357600080fd5b610100808212156140d357600080fd5b85945084013590506001600160401b038111156140ef57600080fd5b6140fb8682870161406b565b9497909650939450505050565b6000806040838503121561411b57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156141685761416861412a565b604052919050565b60006001600160401b038211156141895761418961412a565b50601f01601f191660200190565b600080600080608085870312156141ad57600080fd5b84356141b881613eea565b935060208501356141c881613eea565b92506040850135915060608501356001600160401b038111156141ea57600080fd5b8501601f810187136141fb57600080fd5b803561420e61420982614170565b614140565b81815288602083850101111561422357600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b6000806020838503121561425857600080fd5b82356001600160401b0381111561426e57600080fd5b61427a8582860161406b565b90969095509350505050565b60008083601f84011261429857600080fd5b5081356001600160401b038111156142af57600080fd5b6020830191508360208260051b8501011115613b1b57600080fd5b600080602083850312156142dd57600080fd5b82356001600160401b038111156142f357600080fd5b61427a85828601614286565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561435657603f19888603018452614344858351613eab565b94509285019290850190600101614328565b5092979650505050505050565b803560ff8116811461437457600080fd5b919050565b60008060008060008060c0878903121561439257600080fd5b863561439d81613eea565b955060208701359450604087013593506143b960608801614363565b92506080870135915060a087013590509295509295509295565b600080600080606085870312156143e957600080fd5b84356143f481613eea565b93506020850135925060408501356001600160401b0381111561441657600080fd5b61442287828801614286565b95989497509550505050565b600080600080600080600060e0888a03121561444957600080fd5b873561445481613eea565b9650602088013561446481613eea565b9550604088013594506060880135935061448060808901614363565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156144af57600080fd5b82356144ba81613eea565b91506020830135613faa81613eea565b600080604083850312156144dd57600080fd5b82356144e881613eea565b9150602083013563ffffffff81168114613faa57600080fd5b600181811c9082168061451557607f821691505b6020821081036127ec57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561095857610958614535565b60208082526019908201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604082015260600190565b80356001600160801b038116811461437457600080fd5b610100810182356145b881613eea565b6001600160a01b0390811683526020840135906145d482613eea565b808216602085015260408501356040850152606085013560608501526080850135915061460082613eea565b16608083015261461260a08401614591565b6001600160801b031660a083015261462c60c08401614591565b6001600160801b03811660c08401525060e092830135919092015290565b60006020828403121561465c57600080fd5b81516001600160401b0381111561467257600080fd5b8201601f8101841361468357600080fd5b805161469161420982614170565b8181528560208385010111156146a657600080fd5b6146b7826020830160208601613e87565b95945050505050565b601f821115610b26576000816000526020600020601f850160051c810160208610156146e95750805b601f850160051c820191505b81811015614708578281556001016146f5565b505050505050565b600019600383901b1c191660019190911b1790565b81516001600160401b0381111561473e5761473e61412a565b6147528161474c8454614501565b846146c0565b602080601f831160018114614781576000841561476f5750858301515b6147798582614710565b865550614708565b600085815260208120601f198616915b828110156147b057888601518255948401946001909101908401614791565b50858210156147ce5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156147f057600080fd5b8151610c2d81613eea565b6000806040838503121561480e57600080fd5b825161481981613eea565b602084015190925061ffff81168114613faa57600080fd5b6001600160401b038311156148485761484861412a565b61485c836148568354614501565b836146c0565b6000601f84116001811461488a57600085156148785750838201355b6148828682614710565b8455506113ce565b600083815260209020601f19861690835b828110156148bb578685013582556020948501946001909201910161489b565b50868210156148d85760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261491757600080fd5b8301803591506001600160401b0382111561493157600080fd5b602001915036819003821315613b1b57600080fd5b6001600160a01b03929092168252602082015260400190565b8181038181111561095857610958614535565b60006020828403121561498457600080fd5b610c2d82614591565b808202811582820484141761095857610958614535565b634e487b7160e01b600052601260045260246000fd5b6000826149d757634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351614a59816017850160208801613e87565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614a8a816028840160208801613e87565b01602801949350505050565b60008251614aa8818460208701613e87565b9190910192915050565b634e487b7160e01b600052602160045260246000fd5b600081614ad757614ad7614535565b506000190190565b634e487b7160e01b600052603160045260246000fd5b600060208284031215614b0757600080fd5b81518015158114610c2d57600080fdfe8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c9d7b1cf62e8376e2ef102e20d4e487b829ff44d58ddb1f416ee01cf2ed26829e416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220aea10838c6c4f4a2ce3fd886b130ef13c4c71b6cfd8d1a8022032568d0ea0f4864736f6c63430008170033