608060405234801561001057600080fd5b5060408051602081019091526000815261002981610038565b5061003333610048565b6101f7565b60026100448282610139565b5050565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806100c457607f821691505b6020821081036100e457634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561013457806000526020600020601f840160051c810160208510156101115750805b601f840160051c820191505b81811015610131576000815560010161011d565b50505b505050565b81516001600160401b038111156101525761015261009a565b6101668161016084546100b0565b846100ea565b6020601f82116001811461019a57600083156101825750848201515b600019600385901b1c1916600184901b178455610131565b600084815260208120601f198516915b828110156101ca57878501518255602094850194600190920191016101aa565b50848210156101e85786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b613686806102066000396000f3fe608060405234801561001057600080fd5b50600436106102265760003560e01c8063a01609f811610130578063c72ba8ae116100b8578063e756e9b11161007c578063e756e9b11461053d578063e985e9c514610550578063ef419a601461058c578063f242432a146105af578063f2fde38b146105c257600080fd5b8063c72ba8ae146104ce578063d09b863e146104f1578063d365a08e14610504578063d46655f414610517578063e48ee3361461052a57600080fd5b8063b4d4ce0e116100ff578063b4d4ce0e1461042d578063b6ada54e14610440578063bd85b0391461046b578063be5deb381461048b578063c19e82d5146104ae57600080fd5b8063a01609f8146103c5578063a22cb465146103d9578063a6dcd25a146103ec578063b2931096146103ff57600080fd5b80634f558e79116101b35780638129fc1c116101825780638129fc1c1461035a57806383ca4b6f1461036257806387a3e0e9146103755780638da5cb5b1461039857806395d89b41146103bd57600080fd5b80634f558e791461030a57806355f804b31461032c57806370e182731461033f578063715018a61461035257600080fd5b80630e89341c116101fa5780630e89341c1461029e578063212cb31d146102b15780632eb2c2d6146102c457806344c436c5146102d75780634e1273f4146102ea57600080fd5b8062fdd58e1461022b57806301ffc9a71461025157806306fdde0314610274578063080571eb14610289575b600080fd5b61023e6102393660046128e9565b6105d5565b6040519081526020015b60405180910390f35b61026461025f366004612929565b61066f565b6040519015158152602001610248565b61027c6106bf565b604051610248919061299d565b61029c6102973660046128e9565b61074d565b005b61027c6102ac3660046129b0565b610802565b61029c6102bf366004612b24565b61083d565b61029c6102d2366004612b95565b610ade565b61029c6102e5366004612c58565b610be4565b6102fd6102f8366004612ce4565b610c2c565b6040516102489190612d87565b6102646103183660046129b0565b600090815260036020526040902054151590565b61029c61033a366004612d9a565b610d40565b61029c61034d366004612de2565b610dc7565b61029c610e4b565b61029c610e81565b61029c610370366004612e0e565b61104a565b6102646103833660046129b0565b60086020526000908152604090205460ff1681565b6004546001600160a01b03165b6040516001600160a01b039091168152602001610248565b61027c61113c565b60075461026490600160a01b900460ff1681565b61029c6103e7366004612e43565b611149565b61029c6103fa366004612de2565b6111c2565b61026461040d3660046128e9565b600c60209081526000928352604080842090915290825290205460ff1681565b61029c61043b366004612e6d565b61123e565b61023e61044e3660046128e9565b600b60209081526000928352604080842090915290825290205481565b61023e6104793660046129b0565b60009081526003602052604090205490565b6102646104993660046129b0565b60096020526000908152604090205460ff1681565b61023e6104bc366004612eba565b600a6020526000908152604090205481565b6102646104dc3660046129b0565b600d6020526000908152604090205460ff1681565b61029c6104ff366004612ed5565b611322565b6007546103a5906001600160a01b031681565b61029c610525366004612eba565b611412565b61029c610538366004612de2565b61145e565b6102fd61054b366004612ed5565b6114da565b61026461055e366004612f0c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b61026461059a366004612eba565b600e6020526000908152604090205460ff1681565b61029c6105bd366004612f36565b61159a565b61029c6105d0366004612eba565b611657565b60006001600160a01b0383166106465760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084015b60405180910390fd5b506000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b14806106a057506001600160e01b031982166303a24d0760e21b145b8061066957506301ffc9a760e01b6001600160e01b0319831614610669565b600580546106cc90612f8e565b80601f01602080910402602001604051908101604052809291908181526020018280546106f890612f8e565b80156107455780601f1061071a57610100808354040283529160200191610745565b820191906000526020600020905b81548152906001019060200180831161072857829003601f168201915b505050505081565b6004546001600160a01b031633148061077057506007546001600160a01b031633145b61078c5760405162461bcd60e51b815260040161063d90612fc8565b6107a833826001604051806020016040528060008152506116ef565b6107c533838360016040518060200160405280600081525061159a565b6001600160a01b0382166000908152600b6020908152604080832084845290915281208054600192906107f990849061302c565b90915550505050565b606061080d826117ff565b61081683611893565b60405160200161082792919061303f565b6040516020818303038152906040529050919050565b336000908152600a602052604090205481116108a55760405162461bcd60e51b815260206004820152602160248201527f416368696576656d656e743a20496e76616c696420426c6f636b204e756d62656044820152603960f91b606482015260840161063d565b6007546001600160a01b03166108bc84838561199b565b6001600160a01b0316146109035760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21029b4b3b732b960911b604482015260640161063d565b60005b8351811015610a8e57610932338583815181106109255761092561307e565b60200260200101516105d5565b1561097f5760405162461bcd60e51b815260206004820152601c60248201527f596f752043616e6e6f74204f776e204d6f7265205468616e204f6e6500000000604482015260640161063d565b336000908152600e602052604090205460ff1615610a00578381815181106109a9576109a961307e565b6020026020010151600114610a005760405162461bcd60e51b815260206004820152601b60248201527f596f752063616e206f6e6c7920686f6c64206173736574496420310000000000604482015260640161063d565b610a3533858381518110610a1657610a1661307e565b60200260200101516001604051806020016040528060008152506116ef565b336000908152600b60205260408120855160019290879085908110610a5c57610a5c61307e565b602002602001015181526020019081526020016000206000828254610a81919061302c565b9091555050600101610906565b50336000818152600a602052604090819020439055517f48735e7da393e13ca2a9ab841d2f77d9e761f0fb3cea84f894c58902a1ad999b91610ad1918690613094565b60405180910390a1505050565b6004546001600160a01b0316331480610b0157506007546001600160a01b031633145b610b1d5760405162461bcd60e51b815260040161063d90612fc8565b6004546001600160a01b03163314610bd05760005b8351811015610bce57600d6000858381518110610b5157610b5161307e565b60209081029190910181015182528101919091526040016000205460ff1680610baa575060086000858381518110610b8b57610b8b61307e565b60209081029190910181015182528101919091526040016000205460ff165b610bc65760405162461bcd60e51b815260040161063d906130b8565b600101610b32565b505b610bdd8585858585611a83565b5050505050565b6004546001600160a01b03163314610c0e5760405162461bcd60e51b815260040161063d90613100565b60078054911515600160a01b0260ff60a01b19909216919091179055565b60608151835114610c915760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b606482015260840161063d565b600083516001600160401b03811115610cac57610cac6129c9565b604051908082528060200260200182016040528015610cd5578160200160208202803683370190505b50905060005b8451811015610d3857610d13858281518110610cf957610cf961307e565b60200260200101518583815181106109255761092561307e565b828281518110610d2557610d2561307e565b6020908102919091010152600101610cdb565b509392505050565b6004546001600160a01b03163314610d6a5760405162461bcd60e51b815260040161063d90613100565b8051600003610dbb5760405162461bcd60e51b815260206004820152601760248201527f626173655552492063616e6e6f7420626520656d707479000000000000000000604482015260640161063d565b610dc481611b13565b50565b6004546001600160a01b03163314610df15760405162461bcd60e51b815260040161063d90613100565b6000828152600d6020908152604091829020805460ff19168415159081179091558251858152918201527f3351d3dc040914b6bc88e8075d8d724ce788ac30db775a32d096412ab290cc0491015b60405180910390a15050565b6004546001600160a01b03163314610e755760405162461bcd60e51b815260040161063d90613100565b610e7f6000611b1f565b565b600454600160a01b900460ff1615610ef25760405162461bcd60e51b815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201526d195b881a5b9a5d1a585b1a5e995960921b606482015260840161063d565b60408051808201909152600b81526a1058da1a595d995b595b9d60aa1b6020820152600590610f21908261317c565b5060408051808201909152600b81526a1058da1a595d995b595b9d60aa1b6020820152600690610f51908261317c565b507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600f819055604080518082018252600b81526a42756c6c6965766572736560a81b6020918201528151808301835260018152603160f81b908201528151908101929092527f04e1a141bd284a6be4d4cd3427d70220b8d58f3a2b00e586534bbde39c592b8d908201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160408051601f19818403018152919052805160209091012060105561103533611b1f565b6004805460ff60a01b1916600160a01b179055565b6004546001600160a01b031633146110fe5760005b82518110156110fc576009600084838151811061107e5761107e61307e565b60209081029190910181015182528101919091526040016000205460ff166110f45760405162461bcd60e51b8152602060048201526024808201527f416368696576656d656e743a206275726e206973206c6f636b6564206279206f6044820152633bb732b960e11b606482015260840161063d565b60010161105f565b505b611109338383611b71565b7fbed51165dbd38d75b79e650269a515321f1eac7c3141b0b5c62dcff34b0511e8338383604051610e3f9392919061323a565b600680546106cc90612f8e565b600754600160a01b900460ff166111b35760405162461bcd60e51b815260206004820152602860248201527f416c6c6f77616e63653a20416c6c6f77616e636520697320626c6f636b656420604482015267313c9037bbb732b960c11b606482015260840161063d565b6111be338383611cf5565b5050565b6004546001600160a01b031633146111ec5760405162461bcd60e51b815260040161063d90613100565b600082815260086020908152604091829020805460ff19168415159081179091558251858152918201527f9977ad80b5218a8361983c2709f70d55d294dccfbc83d6b1dda96cdc1f0598a29101610e3f565b6004546001600160a01b031633148061126157506007546001600160a01b031633145b61127d5760405162461bcd60e51b815260040161063d90612fc8565b60005b835181101561131c576112ad84828151811061129e5761129e61307e565b60200260200101518484611dd5565b7f011436f59e00ca5d3c708f065588942765d6b343b2f5a632a8fdbe53cffc26dc8482815181106112e0576112e061307e565b602090810291909101810151604080516001600160a01b03909216825291810186905290810184905260600160405180910390a1600101611280565b50505050565b6004546001600160a01b031633148061134557506007546001600160a01b031633145b6113615760405162461bcd60e51b815260040161063d90612fc8565b60005b815181101561140d5760008282815181106113815761138161307e565b6020908102919091018101516001600160a01b0386166000908152600c83526040808220838352909352919091205490915060ff16611404576001600160a01b0384166000908152600c602090815260408083208484528252808320805460ff1916600190811790915581519283019091529181526114049186918491906116ef565b50600101611364565b505050565b6004546001600160a01b0316331461143c5760405162461bcd60e51b815260040161063d90613100565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b031633146114885760405162461bcd60e51b815260040161063d90613100565b600082815260096020908152604091829020805460ff19168415159081179091558251858152918201527f03a4808f58198bfa2e914fc3b1e64cc7f7a096b36768def24df154239671306b9101610e3f565b6060600082516001600160401b038111156114f7576114f76129c9565b604051908082528060200260200182016040528015611520578160200160208202803683370190505b50905060005b8351811015610d38576001600160a01b0385166000908152600b60205260408120855190919086908490811061155e5761155e61307e565b60200260200101518152602001908152602001600020548282815181106115875761158761307e565b6020908102919091010152600101611526565b6004546001600160a01b03163314806115bd57506007546001600160a01b031633145b6115d95760405162461bcd60e51b815260040161063d90612fc8565b6000838152600d602052604090205460ff1680611604575060008381526008602052604090205460ff165b8061161957506004546001600160a01b031633145b8061162e57506007546001600160a01b031633145b61164a5760405162461bcd60e51b815260040161063d906130b8565b610bdd8585858585611ed6565b6004546001600160a01b031633146116815760405162461bcd60e51b815260040161063d90613100565b6001600160a01b0381166116e65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161063d565b610dc481611b1f565b6001600160a01b03841661174f5760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b606482015260840161063d565b3361176f8160008761176088611f5d565b61176988611f5d565b87611fa8565b6000848152602081815260408083206001600160a01b03891684529091528120805485929061179f90849061302c565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4610bdd816000878787876120ac565b60606002805461180e90612f8e565b80601f016020809104026020016040519081016040528092919081815260200182805461183a90612f8e565b80156118875780601f1061185c57610100808354040283529160200191611887565b820191906000526020600020905b81548152906001019060200180831161186a57829003601f168201915b50505050509050919050565b6060816000036118ba5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156118e457806118ce8161327a565b91506118dd9050600a836132a9565b91506118be565b6000816001600160401b038111156118fe576118fe6129c9565b6040519080825280601f01601f191660200182016040528015611928576020820181803683370190505b5090505b84156119935761193d6001836132bd565b915061194a600a866132d0565b61195590603061302c565b60f81b81838151811061196a5761196a61307e565b60200101906001600160f81b031916908160001a90535061198c600a866132a9565b945061192c565b949350505050565b6000807f9b9f17af785102868f78755003dc3f251b32267f04d581a557c58fe78d08402b90506000813386886040516020016119d791906132e4565b60405160208183030381529060405280519060200120604051602001611a1f94939291909384526001600160a01b039290921660208401526040830152606082015260800190565b60408051601f19818403018152828252805160209182012060105461190160f01b85840152602285015260428085018290528351808603909101815260629094019092528251920191909120909150611a788186612207565b979650505050505050565b6001600160a01b038516331480611a9f5750611a9f853361055e565b611b065760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b606482015260840161063d565b610bdd8585858585612223565b60026111be828261317c565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316611b975760405162461bcd60e51b815260040161063d9061331a565b8051825114611bb85760405162461bcd60e51b815260040161063d9061335d565b6000339050611bdb81856000868660405180602001604052806000815250611fa8565b60005b8351811015611c96576000848281518110611bfb57611bfb61307e565b602002602001015190506000848381518110611c1957611c1961307e565b602090810291909101810151600084815280835260408082206001600160a01b038c168352909352919091205490915081811015611c695760405162461bcd60e51b815260040161063d906133a5565b6000928352602083815260408085206001600160a01b038b16865290915290922091039055600101611bde565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611ce79291906133e9565b60405180910390a450505050565b816001600160a01b0316836001600160a01b031603611d685760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b606482015260840161063d565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038316611dfb5760405162461bcd60e51b815260040161063d9061331a565b33611e2a81856000611e0c87611f5d565b611e1587611f5d565b60405180602001604052806000815250611fa8565b6000838152602081815260408083206001600160a01b038816845290915290205482811015611e6b5760405162461bcd60e51b815260040161063d906133a5565b6000848152602081815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b6001600160a01b038516331480611ef25750611ef2853361055e565b611f505760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b606482015260840161063d565b610bdd85858585856123be565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611f9757611f9761307e565b602090810291909101015292915050565b6001600160a01b0385166120265760005b835181101561202457828181518110611fd457611fd461307e565b602002602001015160036000868481518110611ff257611ff261307e565b602002602001015181526020019081526020016000206000828254612017919061302c565b9091555050600101611fb9565b505b6001600160a01b0384166120a45760005b83518110156120a2578281815181106120525761205261307e565b6020026020010151600360008684815181106120705761207061307e565b60200260200101518152602001908152602001600020600082825461209591906132bd565b9091555050600101612037565b505b505050505050565b6001600160a01b0384163b156120a45760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906120f09089908990889088908890600401613417565b6020604051808303816000875af192505050801561212b575060408051601f3d908101601f1916820190925261212891810190613451565b60015b6121d75761213761346e565b806308c379a003612170575061214b61348a565b806121565750612172565b8060405162461bcd60e51b815260040161063d919061299d565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606482015260840161063d565b6001600160e01b0319811663f23a6e6160e01b146120a25760405162461bcd60e51b815260040161063d90613505565b600080600061221685856124d2565b91509150610d3881612540565b81518351146122445760405162461bcd60e51b815260040161063d9061335d565b6001600160a01b03841661226a5760405162461bcd60e51b815260040161063d9061354d565b33612279818787878787611fa8565b60005b84518110156123585760008582815181106122995761229961307e565b6020026020010151905060008583815181106122b7576122b761307e565b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156123075760405162461bcd60e51b815260040161063d90613592565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b1682528120805484929061234490849061302c565b90915550506001909301925061227c915050565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516123a89291906133e9565b60405180910390a46120a48187878787876126f6565b6001600160a01b0384166123e45760405162461bcd60e51b815260040161063d9061354d565b336123f481878761176088611f5d565b6000848152602081815260408083206001600160a01b038a168452909152902054838110156124355760405162461bcd60e51b815260040161063d90613592565b6000858152602081815260408083206001600160a01b038b811685529252808320878503905590881682528120805486929061247290849061302c565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46120a28288888888886120ac565b60008082516041036125085760208301516040840151606085015160001a6124fc878285856127b1565b94509450505050612539565b8251604003612531576020830151604084015161252686838361289e565b935093505050612539565b506000905060025b9250929050565b6000816004811115612554576125546135dc565b0361255c5750565b6001816004811115612570576125706135dc565b036125bd5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161063d565b60028160048111156125d1576125d16135dc565b0361261e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161063d565b6003816004811115612632576126326135dc565b0361268a5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161063d565b600481600481111561269e5761269e6135dc565b03610dc45760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161063d565b6001600160a01b0384163b156120a45760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061273a90899089908890889088906004016135f2565b6020604051808303816000875af1925050508015612775575060408051601f3d908101601f1916820190925261277291810190613451565b60015b6127815761213761346e565b6001600160e01b0319811663bc197c8160e01b146120a25760405162461bcd60e51b815260040161063d90613505565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127e85750600090506003612895565b8460ff16601b1415801561280057508460ff16601c14155b156128115750600090506004612895565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612865573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661288e57600060019250925050612895565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b016128bf878288856127b1565b935093505050935093915050565b80356001600160a01b03811681146128e457600080fd5b919050565b600080604083850312156128fc57600080fd5b612905836128cd565b946020939093013593505050565b6001600160e01b031981168114610dc457600080fd5b60006020828403121561293b57600080fd5b813561294681612913565b9392505050565b60005b83811015612968578181015183820152602001612950565b50506000910152565b6000815180845261298981602086016020860161294d565b601f01601f19169290920160200192915050565b6020815260006129466020830184612971565b6000602082840312156129c257600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715612a0457612a046129c9565b6040525050565b60006001600160401b03821115612a2457612a246129c9565b5060051b60200190565b600082601f830112612a3f57600080fd5b8135612a4a81612a0b565b604051612a5782826129df565b80915082815260208101915060208360051b860101925085831115612a7b57600080fd5b602085015b83811015612a98578035835260209283019201612a80565b5095945050505050565b6000806001600160401b03841115612abc57612abc6129c9565b50604051601f8401601f191660200190612ad682826129df565b809250848152858585011115612aeb57600080fd5b8484602083013760006020868301015250509392505050565b600082601f830112612b1557600080fd5b61294683833560208501612aa2565b600080600060608486031215612b3957600080fd5b83356001600160401b03811115612b4f57600080fd5b612b5b86828701612a2e565b93505060208401356001600160401b03811115612b7757600080fd5b612b8386828701612b04565b93969395505050506040919091013590565b600080600080600060a08688031215612bad57600080fd5b612bb6866128cd565b9450612bc4602087016128cd565b935060408601356001600160401b03811115612bdf57600080fd5b612beb88828901612a2e565b93505060608601356001600160401b03811115612c0757600080fd5b612c1388828901612a2e565b92505060808601356001600160401b03811115612c2f57600080fd5b612c3b88828901612b04565b9150509295509295909350565b803580151581146128e457600080fd5b600060208284031215612c6a57600080fd5b61294682612c48565b600082601f830112612c8457600080fd5b8135612c8f81612a0b565b604051612c9c82826129df565b80915082815260208101915060208360051b860101925085831115612cc057600080fd5b602085015b83811015612a9857612cd6816128cd565b835260209283019201612cc5565b60008060408385031215612cf757600080fd5b82356001600160401b03811115612d0d57600080fd5b612d1985828601612c73565b92505060208301356001600160401b03811115612d3557600080fd5b612d4185828601612a2e565b9150509250929050565b600081518084526020840193506020830160005b82811015612d7d578151865260209586019590910190600101612d5f565b5093949350505050565b6020815260006129466020830184612d4b565b600060208284031215612dac57600080fd5b81356001600160401b03811115612dc257600080fd5b8201601f81018413612dd357600080fd5b61199384823560208401612aa2565b60008060408385031215612df557600080fd5b82359150612e0560208401612c48565b90509250929050565b60008060408385031215612e2157600080fd5b82356001600160401b03811115612e3757600080fd5b612d1985828601612a2e565b60008060408385031215612e5657600080fd5b612e5f836128cd565b9150612e0560208401612c48565b600080600060608486031215612e8257600080fd5b83356001600160401b03811115612e9857600080fd5b612ea486828701612c73565b9660208601359650604090950135949350505050565b600060208284031215612ecc57600080fd5b612946826128cd565b60008060408385031215612ee857600080fd5b612ef1836128cd565b915060208301356001600160401b03811115612d3557600080fd5b60008060408385031215612f1f57600080fd5b612f28836128cd565b9150612e05602084016128cd565b600080600080600060a08688031215612f4e57600080fd5b612f57866128cd565b9450612f65602087016128cd565b9350604086013592506060860135915060808601356001600160401b03811115612c2f57600080fd5b600181811c90821680612fa257607f821691505b602082108103612fc257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f416368696576656d656e743a2063616c6c6572206973206e6f7420746865206f60408201526d3bb732b91037b91036b0b9ba32b960911b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561066957610669613016565b6000835161305181846020880161294d565b83519083019061306581836020880161294d565b64173539b7b760d91b9101908152600501949350505050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038316815260406020820181905260009061199390830184612d4b565b60208082526028908201527f416368696576656d656e743a207472616e73666572206973206c6f636b656420604082015267313c9037bbb732b960c11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b601f82111561140d57806000526020600020601f840160051c8101602085101561315c5750805b601f840160051c820191505b81811015610bdd5760008155600101613168565b81516001600160401b03811115613195576131956129c9565b6131a9816131a38454612f8e565b84613135565b6020601f8211600181146131dd57600083156131c55750848201515b600019600385901b1c1916600184901b178455610bdd565b600084815260208120601f198516915b8281101561320d57878501518255602094850194600190920191016131ed565b508482101561322b5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6001600160a01b038416815260606020820181905260009061325e90830185612d4b565b82810360408401526132708185612d4b565b9695505050505050565b60006001820161328c5761328c613016565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826132b8576132b8613293565b500490565b8181038181111561066957610669613016565b6000826132df576132df613293565b500690565b8151600090829060208501835b8281101561330f5781518452602093840193909101906001016132f1565b509195945050505050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6040815260006133fc6040830185612d4b565b828103602084015261340e8185612d4b565b95945050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611a7890830184612971565b60006020828403121561346357600080fd5b815161294681612913565b600060033d11156134875760046000803e5060005160e01c5b90565b600060443d10156134985790565b6040513d600319016004823e80513d60248201116001600160401b03821117156134c157505090565b80820180516001600160401b038111156134dc575050505090565b3d84016003190182820160200111156134f6575050505090565b610d38602082850101856129df565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b0386811682528516602082015260a06040820181905260009061361e90830186612d4b565b82810360608401526136308186612d4b565b905082810360808401526136448185612971565b9897505050505050505056fea264697066735822122099b1440e0910a65aa77d0fb6ef2c5b2201e6b100b8691d79c6a757baed5cf46e64736f6c634300081a0033