6080604052601e600c556005600d556001600f5534801561001f57600080fd5b50604080518082018252600a8152692937b137a232bc102b1960b11b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527f9500f5e8340acfe9981666cec5dcc9772cdac841011a0932f390970f217d8965818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015246608082018190523060a0808401919091528451808403909101815260c09092018452815191830191909120600091825260049092529190912081905550600580546001600160a01b03191633179055613cc7806101266000396000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c80636a62784211610160578063a9059cbb116100d8578063d505accf1161008c578063dd62ed3e11610071578063dd62ed3e14610614578063f140a35a1461063f578063fff6cae91461065257600080fd5b8063d505accf146105f6578063db8d55f11461060957600080fd5b8063bc25cf77116100bd578063bc25cf77146105bd578063c45a0155146105d0578063d21220a7146105e357600080fd5b8063a9059cbb146105a1578063ba9a7a56146105b457600080fd5b80637f53ac551161012f57806391ff1eb11161011457806391ff1eb11461053257806395d89b411461054557806399740a181461058157600080fd5b80637f53ac55146104f757806389afcb441461050a57600080fd5b80636a6278421461049b57806370a08231146104ae5780637464fc3d146104ce5780637ecebe00146104d757600080fd5b806323b872dd116101f3578063485cc955116101c25780635909c0d5116101a75780635909c0d5146104765780635a3d54931461047f5780635e1e63251461048857600080fd5b8063485cc9551461045057806354789a5e1461046357600080fd5b806323b872dd146103e757806330adf81f146103fa578063313ce567146104215780633644e5151461043b57600080fd5b80630a9a2b721161024a5780630dfe16811161022f5780630dfe1681146103a05780631125f13f146103cb57806318160ddd146103de57600080fd5b80630a9a2b721461036c5780630b78f9c01461038d57600080fd5b8063022c0d9f1461027c57806306fdde03146102915780630902f1ac146102e3578063095ea7b314610349575b600080fd5b61028f61028a3660046136d2565b61065a565b005b6102cd6040518060400160405280600a81526020017f526f626f4465782056320000000000000000000000000000000000000000000081525081565b6040516102da919061378c565b60405180910390f35b600854604080516dffffffffffffffffffffffffffff80841682526e01000000000000000000000000000084041660208201527c010000000000000000000000000000000000000000000000000000000090920463ffffffff16908201526060016102da565b61035c6103573660046137dd565b610ca4565b60405190151581526020016102da565b61037f61037a366004613809565b610cbb565b6040519081526020016102da565b61028f61039b36600461384b565b610d87565b6006546103b3906001600160a01b031681565b6040516001600160a01b0390911681526020016102da565b61037f6103d936600461386d565b610ec5565b61037f60005481565b61035c6103f536600461389d565b610f73565b61037f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b610429601281565b60405160ff90911681526020016102da565b4660009081526004602052604090205461037f565b61028f61045e3660046138de565b611026565b61035c61047136600461390c565b6110c6565b61037f60095481565b61037f600a5481565b61037f610496366004613809565b6111cc565b61037f6104a936600461390c565b61128d565b61037f6104bc36600461390c565b60016020526000908152604090205481565b61037f600b5481565b61037f6104e536600461390c565b60036020526000908152604090205481565b61028f610505366004613929565b6115ec565b61051d61051836600461390c565b611ca1565b604080519283526020830191909152016102da565b61028f610540366004613981565b61207f565b6102cd6040518060400160405280600781526020017f524249462d56320000000000000000000000000000000000000000000000000081525081565b61037f61058f3660046139af565b60046020526000908152604090205481565b61035c6105af3660046137dd565b6121e1565b61037f6103e881565b61028f6105cb36600461390c565b6121ee565b6005546103b3906001600160a01b031681565b6007546103b3906001600160a01b031681565b61028f6106043660046139c8565b61234a565b600c54600d5461051d565b61037f6106223660046138de565b600260209081526000928352604080842090915290825290205481565b61037f61064d36600461386d565b612539565b61028f6125de565b600f546001146106b15760405162461bcd60e51b815260206004820152601160248201527f556e697377617056323a204c4f434b454400000000000000000000000000000060448201526064015b60405180910390fd5b6000600f55841515806106c45750600084115b6107365760405162461bcd60e51b815260206004820152602560248201527f556e697377617056323a20494e53554646494349454e545f4f55545055545f4160448201527f4d4f554e5400000000000000000000000000000000000000000000000000000060648201526084016106a8565b6000806107926008546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b5091509150816dffffffffffffffffffffffffffff16871080156107c55750806dffffffffffffffffffffffffffff1686105b6108375760405162461bcd60e51b815260206004820152602160248201527f556e697377617056323a20494e53554646494349454e545f4c4951554944495460448201527f590000000000000000000000000000000000000000000000000000000000000060648201526084016106a8565b60065460075460009182916001600160a01b039182169190811690891682148015906108755750806001600160a01b0316896001600160a01b031614155b6108c15760405162461bcd60e51b815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f000000000000000000000060448201526064016106a8565b8a156108d2576108d2828a8d612744565b89156108e3576108e3818a8c612744565b8615610969576040517f10d1e85c0000000000000000000000000000000000000000000000000000000081526001600160a01b038a16906310d1e85c906109369033908f908f908e908e90600401613a3f565b600060405180830381600087803b15801561095057600080fd5b505af1158015610964573d6000803e3d6000fd5b505050505b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa1580156109ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d19190613aaa565b6040516370a0823160e01b81523060048201529094506001600160a01b038216906370a0823190602401602060405180830381865afa158015610a18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3c9190613aaa565b92505050600089856dffffffffffffffffffffffffffff16610a5e9190613af2565b8311610a6b576000610a8f565b610a858a6dffffffffffffffffffffffffffff8716613af2565b610a8f9084613af2565b90506000610aad8a6dffffffffffffffffffffffffffff8716613af2565b8311610aba576000610ade565b610ad48a6dffffffffffffffffffffffffffff8716613af2565b610ade9084613af2565b90506000821180610aef5750600081115b610b605760405162461bcd60e51b8152602060048201526024808201527f556e697377617056323a20494e53554646494349454e545f494e5055545f414d60448201527f4f554e540000000000000000000000000000000000000000000000000000000060648201526084016106a8565b600c546000610b6f8285613b05565b610b7b87612710613b05565b610b859190613af2565b90506000610b938385613b05565b610b9f87612710613b05565b610ba99190613af2565b9050610bc86dffffffffffffffffffffffffffff808a16908b16613b05565b610bd6906305f5e100613b05565b610be08284613b05565b1015610c2e5760405162461bcd60e51b815260206004820152600c60248201527f556e697377617056323a204b000000000000000000000000000000000000000060448201526064016106a8565b505050610c3d848488886128bd565b60408051838152602081018390529081018c9052606081018b90526001600160a01b038a169033907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229060800160405180910390a350506001600f55505050505050505050565b6000610cb1338484612b7f565b5060015b92915050565b600654600090819081906001600160a01b03868116911614610d04576008546dffffffffffffffffffffffffffff6e010000000000000000000000000000820481169116610d2e565b6008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004165b600c546001600160a01b0387166000908152600e60205260409020546dffffffffffffffffffffffffffff938416955091909216925060ff1615610d70575060005b610d7c87848484612c31565b979650505050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663b9818be16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfe9190613b1c565b6001600160a01b0316336001600160a01b031614610e5e5760405162461bcd60e51b815260206004820152601460248201527f556e697377617056323a20464f5242494444454e00000000000000000000000060448201526064016106a8565b603c8211158015610e6e57508181105b610eba5760405162461bcd60e51b815260206004820152601660248201527f556e697377617056323a20494e56414c49445f4645450000000000000000000060448201526064016106a8565b600c91909155600d55565b600654600090819081906001600160a01b03858116911614610f0e576008546dffffffffffffffffffffffffffff6e010000000000000000000000000000820481169116610f38565b6008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004165b6dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150610f6a858383600c54612c31565b95945050505050565b6001600160a01b03831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14611011576001600160a01b0384166000908152600260209081526040808320338452909152902054610fec908390613af2565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b61101c848484612d7d565b5060019392505050565b6005546001600160a01b031633146110805760405162461bcd60e51b815260206004820152601460248201527f556e697377617056323a20464f5242494444454e00000000000000000000000060448201526064016106a8565b600680546001600160a01b039384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b600554604080517fb9818be100000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163b9818be19160048083019260209291908290030181865afa158015611129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114d9190613b1c565b6001600160a01b0316336001600160a01b0316146111ad5760405162461bcd60e51b815260206004820152601460248201527f556e697377617056323a20464f5242494444454e00000000000000000000000060448201526064016106a8565b506001600160a01b03166000908152600e602052604090205460ff1690565b600654600090819081906001600160a01b03868116911614611215576008546dffffffffffffffffffffffffffff6e01000000000000000000000000000082048116911661123f565b6008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004165b600c546001600160a01b0387166000908152600e60205260409020546dffffffffffffffffffffffffffff938416955091909216925060ff1615611281575060005b610d7c87848484612e75565b6000600f546001146112e15760405162461bcd60e51b815260206004820152601160248201527f556e697377617056323a204c4f434b454400000000000000000000000000000060448201526064016106a8565b6000600f819055600854600654604080516370a0823160e01b815230600482015290516dffffffffffffffffffffffffffff808516956e0100000000000000000000000000009095041693926001600160a01b0316916370a082319160248083019260209291908290030181865afa158015611361573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113859190613aaa565b6007546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156113d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f79190613aaa565b905060006114156dffffffffffffffffffffffffffff861684613af2565b905060006114336dffffffffffffffffffffffffffff861684613af2565b905060006114418787612fc7565b60008054919250819003611482576103e861146461145f8587613b05565b613136565b61146e9190613af2565b985061147d60006103e86131a6565b6114d7565b6114d46dffffffffffffffffffffffffffff89166114a08387613b05565b6114aa9190613b68565b6dffffffffffffffffffffffffffff89166114c58487613b05565b6114cf9190613b68565b613254565b98505b6000891161154d5760405162461bcd60e51b815260206004820152602860248201527f556e697377617056323a20494e53554646494349454e545f4c4951554944495460448201527f595f4d494e54454400000000000000000000000000000000000000000000000060648201526084016106a8565b6115578a8a6131a6565b61156386868a8a6128bd565b811561159e5760085461159a906dffffffffffffffffffffffffffff6e010000000000000000000000000000820481169116613b05565b600b555b604080518581526020810185905233917f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a250506001600f5550949695505050505050565b600f5460011461163e5760405162461bcd60e51b815260206004820152601160248201527f556e697377617056323a204c4f434b454400000000000000000000000000000060448201526064016106a8565b6000600f556005546040517ff3d7d2820000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039091169063f3d7d28290602401602060405180830381865afa1580156116a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c89190613b7c565b6117145760405162461bcd60e51b815260206004820152601960248201527f556e697377617056323a20696e76616c696420726f757465720000000000000060448201526064016106a8565b60008411806117235750600083115b6117955760405162461bcd60e51b815260206004820152602560248201527f556e697377617056323a20494e53554646494349454e545f4f55545055545f4160448201527f4d4f554e5400000000000000000000000000000000000000000000000000000060648201526084016106a8565b6000806117f16008546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b5091509150816dffffffffffffffffffffffffffff16861080156118245750806dffffffffffffffffffffffffffff1685105b6118965760405162461bcd60e51b815260206004820152602160248201527f556e697377617056323a20494e53554646494349454e545f4c4951554944495460448201527f590000000000000000000000000000000000000000000000000000000000000060648201526084016106a8565b60065460075460009182916001600160a01b039182169190811690881682148015906118d45750806001600160a01b0316886001600160a01b031614155b6119205760405162461bcd60e51b815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f000000000000000000000060448201526064016106a8565b89156119315761193182898c612744565b88156119425761194281898b612744565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015611986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119aa9190613aaa565b6040516370a0823160e01b81523060048201529094506001600160a01b038216906370a0823190602401602060405180830381865afa1580156119f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a159190613aaa565b92505050600088856dffffffffffffffffffffffffffff16611a379190613af2565b8311611a44576000611a68565b611a5e896dffffffffffffffffffffffffffff8716613af2565b611a689084613af2565b90506000611a86896dffffffffffffffffffffffffffff8716613af2565b8311611a93576000611ab7565b611aad896dffffffffffffffffffffffffffff8716613af2565b611ab79084613af2565b90506000821180611ac85750600081115b611b395760405162461bcd60e51b8152602060048201526024808201527f556e697377617056323a20494e53554646494349454e545f494e5055545f414d60448201527f4f554e540000000000000000000000000000000000000000000000000000000060648201526084016106a8565b600c546001600160a01b0388166000908152600e602052604090205460ff1615611b61575060005b6000611b6d8285613b05565b611b7987612710613b05565b611b839190613af2565b90506000611b918385613b05565b611b9d87612710613b05565b611ba79190613af2565b9050611bc66dffffffffffffffffffffffffffff808a16908b16613b05565b611bd4906305f5e100613b05565b611bde8284613b05565b1015611c2c5760405162461bcd60e51b815260206004820152600c60248201527f556e697377617056323a204b000000000000000000000000000000000000000060448201526064016106a8565b505050611c3b848488886128bd565b60408051838152602081018390529081018b9052606081018a90526001600160a01b0389169033907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229060800160405180910390a350506001600f555050505050505050565b600080600f54600114611cf65760405162461bcd60e51b815260206004820152601160248201527f556e697377617056323a204c4f434b454400000000000000000000000000000060448201526064016106a8565b6000600f819055600854600654600754604080516370a0823160e01b815230600482015290516dffffffffffffffffffffffffffff808616966e01000000000000000000000000000090960416946001600160a01b0394851694909316929184916370a08231916024808201926020929091908290030181865afa158015611d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da69190613aaa565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa158015611df0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e149190613aaa565b30600090815260016020526040812054919250611e318888612fc7565b60005490915080611e428685613b05565b611e4c9190613b68565b9a5080611e598585613b05565b611e639190613b68565b995060008b118015611e75575060008a115b611ee75760405162461bcd60e51b815260206004820152602860248201527f556e697377617056323a20494e53554646494349454e545f4c4951554944495460448201527f595f4255524e454400000000000000000000000000000000000000000000000060648201526084016106a8565b611ef1308461326c565b611efc878d8d612744565b611f07868d8c612744565b6040516370a0823160e01b81523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa158015611f4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6f9190613aaa565b6040516370a0823160e01b81523060048201529095506001600160a01b038716906370a0823190602401602060405180830381865afa158015611fb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fda9190613aaa565b9350611fe885858b8b6128bd565b81156120235760085461201f906dffffffffffffffffffffffffffff6e010000000000000000000000000000820481169116613b05565b600b555b604080518c8152602081018c90526001600160a01b038e169133917fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496910160405180910390a35050505050505050506001600f81905550915091565b600560009054906101000a90046001600160a01b03166001600160a01b031663b9818be16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f69190613b1c565b6001600160a01b0316336001600160a01b0316146121565760405162461bcd60e51b815260206004820152601460248201527f556e697377617056323a20464f5242494444454e00000000000000000000000060448201526064016106a8565b80156121a1576001600160a01b0382166000908152600e6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050565b506001600160a01b03166000908152600e6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000610cb1338484612d7d565b600f546001146122405760405162461bcd60e51b815260206004820152601160248201527f556e697377617056323a204c4f434b454400000000000000000000000000000060448201526064016106a8565b6000600f556006546007546008546040516370a0823160e01b81523060048201526001600160a01b0393841693909216916122e691849186916dffffffffffffffffffffffffffff169083906370a08231906024015b602060405180830381865afa1580156122b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d79190613aaa565b6122e19190613af2565b612744565b6008546040516370a0823160e01b815230600482015261234091839186916e01000000000000000000000000000090046dffffffffffffffffffffffffffff16906001600160a01b038416906370a0823190602401612296565b50506001600f5550565b4284101561239a5760405162461bcd60e51b815260206004820152601260248201527f556e697377617056323a2045585049524544000000000000000000000000000060448201526064016106a8565b60006123a4613348565b6001600160a01b038916600090815260036020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928c928c928c929091906123f283613b99565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e001604051602081830303815290604052805190602001206040516020016124869291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60405160208183030381529060405280519060200120905060006124ac8286868661347b565b90506001600160a01b038116158015906124d75750886001600160a01b0316816001600160a01b0316145b6125235760405162461bcd60e51b815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e41545552450000000060448201526064016106a8565b61252e898989612b7f565b505050505050505050565b600654600090819081906001600160a01b03858116911614612582576008546dffffffffffffffffffffffffffff6e0100000000000000000000000000008204811691166125ac565b6008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004165b6dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150610f6a858383600c54612e75565b600f546001146126305760405162461bcd60e51b815260206004820152601160248201527f556e697377617056323a204c4f434b454400000000000000000000000000000060448201526064016106a8565b6000600f556006546040516370a0823160e01b815230600482015261273d916001600160a01b0316906370a0823190602401602060405180830381865afa15801561267f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a39190613aaa565b6007546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156126eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270f9190613aaa565b6008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166128bd565b6001600f55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052915160009283928716916127fe9190613bd1565b6000604051808303816000865af19150503d806000811461283b576040519150601f19603f3d011682016040523d82523d6000602084013e612840565b606091505b509150915081801561286a57508051158061286a57508080602001905181019061286a9190613b7c565b6128b65760405162461bcd60e51b815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c454400000000000060448201526064016106a8565b5050505050565b6dffffffffffffffffffffffffffff84118015906128e957506dffffffffffffffffffffffffffff8311155b6129355760405162461bcd60e51b815260206004820152601360248201527f556e697377617056323a204f564552464c4f570000000000000000000000000060448201526064016106a8565b600061294664010000000042613bed565b60085490915060009061297f907c0100000000000000000000000000000000000000000000000000000000900463ffffffff1683613c01565b905060008163ffffffff161180156129a657506dffffffffffffffffffffffffffff841615155b80156129c157506dffffffffffffffffffffffffffff831615155b15612a8f578063ffffffff166129fe856129da86613673565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169061369e565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16612a269190613b05565b60096000828254612a379190613c25565b909155505063ffffffff8116612a50846129da87613673565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16612a789190613b05565b600a6000828254612a899190613c25565b90915550505b6008805463ffffffff84167c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff8981166e0100000000000000000000000000009081027fffffffff000000000000000000000000000000000000000000000000000000009095168c83161794909417918216831794859055604080519382169282169290921783529290930490911660208201527f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1910160405180910390a1505050505050565b60008111612bcf5760405162461bcd60e51b815260206004820152600860248201527f4e6567617469766500000000000000000000000000000000000000000000000060448201526064016106a8565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000808511612ca85760405162461bcd60e51b815260206004820152602c60248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4f60448201527f55545055545f414d4f554e54000000000000000000000000000000000000000060648201526084016106a8565b600084118015612cb85750600083115b612d2a5760405162461bcd60e51b815260206004820152602860248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60448201527f495155494449545900000000000000000000000000000000000000000000000060648201526084016106a8565b6000612d368686613b05565b612d4290612710613b05565b90506000612d5284612710613af2565b612d5c8887613af2565b612d669190613b05565b9050612d728183613b68565b610d7c906001613c25565b60008111612dcd5760405162461bcd60e51b815260206004820152600860248201527f4e6567617469766500000000000000000000000000000000000000000000000060448201526064016106a8565b6001600160a01b038316600090815260016020526040902054612df1908290613af2565b6001600160a01b038085166000908152600160205260408082209390935590841681522054612e21908290613c25565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612c249085815260200190565b6000808511612eec5760405162461bcd60e51b815260206004820152602b60248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4960448201527f4e5055545f414d4f554e5400000000000000000000000000000000000000000060648201526084016106a8565b600084118015612efc5750600083115b612f6e5760405162461bcd60e51b815260206004820152602860248201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60448201527f495155494449545900000000000000000000000000000000000000000000000060648201526084016106a8565b6000612f7c83612710613af2565b612f869087613b05565b90506000612f948583613b05565b9050600082612fa588612710613b05565b612faf9190613c25565b9050612fbb8183613b68565b98975050505050505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa15801561301d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130419190613b1c565b600c54600d54600b546001600160a01b0384161580159650939450919290919061312057801561311b57600061308d61145f6dffffffffffffffffffffffffffff808a16908b16613b05565b9050600061309a83613136565b905080821115613118576000846130b18385613af2565b6000546130be9190613b05565b6130c89190613b05565b905060006130d68684613b05565b6130e08789613af2565b6130ea9086613b05565b6130f49190613c25565b905060006131028284613b68565b905080156131145761311489826131a6565b5050505b50505b61312c565b801561312c576000600b555b5050505092915050565b600060038211156131975750806000613150600283613b68565b61315b906001613c25565b90505b81811015613191579050806002816131768186613b68565b6131809190613c25565b61318a9190613b68565b905061315e565b50919050565b81156131a1575060015b919050565b600081116131f65760405162461bcd60e51b815260206004820152600860248201527f4e6567617469766500000000000000000000000000000000000000000000000060448201526064016106a8565b60008054820181556001600160a01b038316808252600160209081526040808420805486019055518481529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b60008183106132635781613265565b825b9392505050565b600081116132bc5760405162461bcd60e51b815260206004820152600860248201527f4e6567617469766500000000000000000000000000000000000000000000000060448201526064016106a8565b6001600160a01b0382166000908152600160205260409020546132e0908290613af2565b6001600160a01b03831660009081526001602052604081209190915554613308908290613af2565b60009081556040518281526001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001613248565b46600090815260046020526040812054801561336357919050565b5050604080518082018252600a81527f526f626f4465782056320000000000000000000000000000000000000000000060209182015281518083018352600181527f31000000000000000000000000000000000000000000000000000000000000009082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527f9500f5e8340acfe9981666cec5dcc9772cdac841011a0932f390970f217d8965818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015246608082018190523060a0808401919091528451808403909101815260c09092018452815191830191909120600091825260049092529190912081905590565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156135135760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016106a8565b8360ff16601b1415801561352b57508360ff16601c14155b1561359e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016106a8565b6040805160008082526020820180845288905260ff871692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa1580156135f2573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001519150506001600160a01b038116610f6a5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106a8565b6000610cb56e0100000000000000000000000000006dffffffffffffffffffffffffffff8416613c38565b60006132656dffffffffffffffffffffffffffff831684613c7f565b6001600160a01b03811681146136cf57600080fd5b50565b6000806000806000608086880312156136ea57600080fd5b85359450602086013593506040860135613703816136ba565b9250606086013567ffffffffffffffff8082111561372057600080fd5b818801915088601f83011261373457600080fd5b81358181111561374357600080fd5b89602082850101111561375557600080fd5b9699959850939650602001949392505050565b60005b8381101561378357818101518382015260200161376b565b50506000910152565b60208152600082518060208401526137ab816040850160208701613768565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600080604083850312156137f057600080fd5b82356137fb816136ba565b946020939093013593505050565b60008060006060848603121561381e57600080fd5b833592506020840135613830816136ba565b91506040840135613840816136ba565b809150509250925092565b6000806040838503121561385e57600080fd5b50508035926020909101359150565b6000806040838503121561388057600080fd5b823591506020830135613892816136ba565b809150509250929050565b6000806000606084860312156138b257600080fd5b83356138bd816136ba565b925060208401356138cd816136ba565b929592945050506040919091013590565b600080604083850312156138f157600080fd5b82356138fc816136ba565b91506020830135613892816136ba565b60006020828403121561391e57600080fd5b8135613265816136ba565b6000806000806080858703121561393f57600080fd5b84359350602085013592506040850135613958816136ba565b91506060850135613968816136ba565b939692955090935050565b80151581146136cf57600080fd5b6000806040838503121561399457600080fd5b823561399f816136ba565b9150602083013561389281613973565b6000602082840312156139c157600080fd5b5035919050565b600080600080600080600060e0888a0312156139e357600080fd5b87356139ee816136ba565b965060208801356139fe816136ba565b95506040880135945060608801359350608088013560ff81168114613a2257600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6001600160a01b038616815284602082015283604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101949350505050565b600060208284031215613abc57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610cb557610cb5613ac3565b8082028115828204841417610cb557610cb5613ac3565b600060208284031215613b2e57600080fd5b8151613265816136ba565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082613b7757613b77613b39565b500490565b600060208284031215613b8e57600080fd5b815161326581613973565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613bca57613bca613ac3565b5060010190565b60008251613be3818460208701613768565b9190910192915050565b600082613bfc57613bfc613b39565b500690565b63ffffffff828116828216039080821115613c1e57613c1e613ac3565b5092915050565b80820180821115610cb557610cb5613ac3565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff828116828216818102831692918115828504821417613c7657613c76613ac3565b50505092915050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff80841680613cae57613cae613b39565b9216919091049291505056fea164736f6c6343000812000a