0x610120604052348015610010575f5ffd5b5060405161350038038061350083398101604081905261002f91610160565b604081015181906001600160a01b03811661006357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61006c816100da565b5080516001600160a01b039081166080526020820151811660a052604090910151600280549183166001600160a01b031990921691909117905563ffffffff90941660c05250821660e0521661010052600680546001600160801b0319166001600160801b03179055610223565b600180546001600160a01b03191690556100f3816100f6565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811461015b575f5ffd5b919050565b5f5f5f5f84860360c0811215610174575f5ffd5b855163ffffffff81168114610187575f5ffd5b945061019560208701610145565b93506101a360408701610145565b92506060605f19820112156101b6575f5ffd5b50604051606081016001600160401b03811182821017156101e557634e487b7160e01b5f52604160045260245ffd5b6040526101f460608701610145565b815261020260808701610145565b602082015261021360a08701610145565b6040820152939692955090935050565b60805160a05160c05160e051610100516131f86103085f395f81816103660152818161056f01528181610b7901528181610d5001528181611435015281816117af0152818161184e015261264b01525f8181610b9a01528181610bc501528181610c9301528181610e100152610eaa01525f81816105360152818161059e015281816106420152818161103a015281816111b80152818161127a015281816115380152818161258e015281816125f401526126e401525f81816103c70152818161077f0152610dc601525f818161024b01528181612325015261245901526131f85ff3fe608060405234801561000f575f5ffd5b50600436106101d1575f3560e01c806379ba5097116100fe578063ad1b63f41161009e578063ead7da7b1161006e578063ead7da7b14610503578063f0f442601461050b578063f2fde38b1461051e578063f38d00f014610531575f5ffd5b8063ad1b63f414610431578063d8ed224114610484578063e121ce4114610497578063e30c3978146104f2575f5ffd5b80638da5cb5b116100d95780638da5cb5b146103f25780639f47f04814610402578063a381122b14610415578063a40a1c9514610428575f5ffd5b806379ba5097146103ba5780637c887c59146103c2578063867dcd51146103e9575f5ffd5b8063457c7afa1161017457806367e25ab01161014457806367e25ab014610361578063715018a6146103885780637451d67114610390578063782ee170146103a3575f5ffd5b8063457c7afa1461030257806356f0b41f14610315578063584655351461031e57806361d027b31461034e575f5ffd5b80632c76d7a6116101af5780632c76d7a6146102465780633a237aa0146102855780633c3747931461029857806344e43c98146102b0575f5ffd5b806302df9df1146101d55780630303498914610205578063090f8ad41461021a575b5f5ffd5b6006546101e8906001600160801b031681565b6040516001600160801b0390911681526020015b60405180910390f35b61021861021336600461287c565b610558565b005b60045461023190600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101fc565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101fc565b60025461026d906001600160a01b031681565b670214e8348c4f00005b6040519081526020016101fc565b6102b8610605565b6040805163ffffffff97881681526001600160801b03909616602087015261ffff9094169385019390935293166060830152608082019290925290151560a082015260c0016101fc565b6102186103103660046128a7565b610709565b6102a260095481565b61033161032c3660046128c2565b610777565b604080519283526001600160e01b039091166020830152016101fc565b60045461026d906001600160a01b031681565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6102186108c1565b61021861039e366004612900565b6108d4565b60045461023190600160c01b900463ffffffff1681565b61021861091d565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6102a260075481565b5f546001600160a01b031661026d565b610218610410366004612937565b610966565b61021861042336600461298a565b610a72565b6102a260055481565b61046461043f36600461298a565b60086020525f90815260409020546001600160801b0380821691600160801b90041682565b604080516001600160801b039384168152929091166020830152016101fc565b61026d6104923660046129a5565b610dc0565b6104ce6104a53660046128a7565b60036020525f90815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b604080516001600160e01b03909316835263ffffffff9091166020830152016101fc565b6001546001600160a01b031661026d565b610218610df9565b6102186105193660046128a7565b610f0c565b61021861052c3660046128a7565b610f36565b6102317f000000000000000000000000000000000000000000000000000000000000000081565b8061056281610fa6565b6105976001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085610fc6565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000164263ffffffff161180156105f4575060045461012c90600160a01b900463ffffffff16426105ec91906129f0565b63ffffffff16115b1561060157610601611033565b5050565b5f5f5f5f5f5f5f600460149054906101000a900463ffffffff1663ffffffff165f1461064057600454600160a01b900463ffffffff16610662565b7f00000000000000000000000000000000000000000000000000000000000000005b90505f61066f82426129f0565b600454909150600160a01b900463ffffffff161580610695575061012c63ffffffff8216115b156106ff576106a98163ffffffff1661116a565b929a509098509650919450909250839061012c63ffffffff82161180156106de5750600454600160a01b900463ffffffff1615155b6106e8575f6106eb565b60015b6106f89060ff1687612a12565b9550600192505b5050909192939495565b80610713816118de565b61071b611905565b6002546040516001600160a01b038085169216907fe29b0c9a6487aafa3c3ceb89f97f492476d5d1b3c03dbbdd4e1c004d8bd83ef4905f90a350600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f5f5f6107b07f00000000000000000000000000000000000000000000000000000000000000006107ab8888612710611931565b61199b565b6001600160a01b0381165f908152600360209081526040918290208251808401909352546001600160e01b0381168352600160e01b900463ffffffff169082018190529192509015801561080c575080516001600160e01b0316155b1561084f5760405180604001604052806702c68af0bb140000670de0b6b3a76400006108389190612a2c565b67ffffffffffffffff168152600f60209091015290505b5f8160200151603c6108619190612a4c565b90505f61086d84611a81565b90508163ffffffff168163ffffffff161015610887578091505b5f6108928584611c39565b5090505f61089f82611e6e565b8551975090506108b1818a8d8d612189565b9750505050505050935093915050565b6108c9611905565b6108d25f612264565b565b6108dc61227d565b6001600160801b038116156108f157806108fa565b6001600160801b035b600680546001600160801b0319166001600160801b039290921691909117905550565b60015433906001600160a01b0316811461095a5760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b61096381612264565b50565b8063ffffffff1661097681610fa6565b61097e61227d565b601e8263ffffffff1611156109a6576040516330c067a960e01b815260040160405180910390fd5b670de0b6b3a76400006001600160e01b03841611156109d8576040516338fd8f3960e21b815260040160405180910390fd5b8163ffffffff16836001600160e01b0316856001600160a01b03167f6b866971e730de54469a032413d79dc0037a7da3f92641b3a839ecc013a9c73e60405160405180910390a4506040805180820182526001600160e01b03938416815263ffffffff92831660208083019182526001600160a01b039096165f90815260039096529190942093519051909116600160e01b029116179055565b610a7a611033565b80610a84816122bc565b333214610aa457604051639f8129d160e01b815260040160405180910390fd5b600454600160c01b900463ffffffff165f9081526008602052604090208054600160801b90046001600160801b031615610af1576040516331bbcb2160e11b815260040160405180910390fd5b60065481546001600160801b0391821691161115610b275760065481546001600160801b0319166001600160801b039091161781555b80546001600160801b03908116600160801b810280821784555f92610b569291161766354a6ba7a180006122e3565b82549091505f90610b719083906001600160801b0316612a72565b90505f610bc17f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000845f8a61230e565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb7345c03d66229d01df2645e813222b16c8b8b86894610c198467011c37937e0800006122e3565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610c61573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c859190612a94565b506004546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163a9059cbb9116610cce846706f05b59d3b200006122e3565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610d16573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3a9190612a94565b50610d43610df9565b610d776001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633856124e5565b600454600160c01b900463ffffffff166007556040513390829084907f1b3ed074dce570943c9d4e66776a060e8ac73af4f6b002482b09e561d90f038c905f90a4505050505050565b5f610df27f00000000000000000000000000000000000000000000000000000000000000006107ab8585612710611931565b9392505050565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610e5d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e819190612aad565b905080600554610e919190612ac4565b600555604051630852cd8d60e31b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342966c68906024015f604051808303815f87803b158015610ef3575f5ffd5b505af1158015610f05573d5f5f3e3d5ffd5b5050505050565b610f14611905565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b610f3e611905565b600180546001600160a01b0383166001600160a01b03199091168117909155610f6e5f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b805f0361096357604051635a53a6e960e01b815260040160405180910390fd5b6040516001600160a01b03848116602483015283811660448301526064820183905261102d9186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061251b565b50505050565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000164263ffffffff16101561108057604051631864d7ab60e21b815260040160405180910390fd5b600454600160e01b900463ffffffff165f0361109f5761109f5f612587565b5f5f5f5f5f5f6110ad610605565b9550955095509550955095506110c282612587565b8015611162576110d861012c61ffff8616612a4c565b6110e29084612ad7565b6004805463ffffffff928316600160a01b0263ffffffff60a01b199091161781556040805180820182526001600160801b03808a1682525f6020808401828152968d168083526008909152939020915194518116600160801b029416939093179092558054600160c01b90920263ffffffff60c01b199092169190911790555b505050505050565b5f5f5f5f6111778561272e565b6004549092506111999061ffff841690600160c01b900463ffffffff16612ad7565b6111a4906001612ad7565b60405163120db70f60e21b815263ffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152421660248201529094505f907365fdfdfb5f6571ed828f9d1e869f2695f45cd1c390634836dc3c90604401602060405180830381865af4158015611224573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112489190612af3565b6004549091505f90600160a01b900463ffffffff1615611315576004805460405163120db70f60e21b815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000811693820193909352600160a01b90910490911660248201527365fdfdfb5f6571ed828f9d1e869f2695f45cd1c390634836dc3c90604401602060405180830381865af41580156112ec573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113109190612af3565b611317565b815b90508063ffffffff168263ffffffff160361138e575f611347600954611342670214e8348c4f000090565b6122e3565b90505f61135961012c62015180612b22565b6113679061ffff1683612b47565b90505f61137861ffff881683612b5a565b90506113848183612b7c565b9750505050611742565b60048054604051630ac51d8960e11b8152600160a01b90910463ffffffff169181018290525f907365fdfdfb5f6571ed828f9d1e869f2695f45cd1c39063158a3b1290602401602060405180830381865af41580156113ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114139190612af3565b6040516370a0823160e01b81523060048201529091505f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa15801561147a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061149e9190612aad565b90505b8363ffffffff168563ffffffff161061173e575f63ffffffff83164263ffffffff16106114d8576114d36001846129f0565b6114da565b425b90505f61012c6114ea86846129f0565b6114f49190612b9b565b90505f8a6001600160801b0316841161150d575f611520565b6115206001600160801b038c1685612a72565b6004805460405163120db70f60e21b815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000811693820193909352600160a01b909104821660248201529192505f91908916907365fdfdfb5f6571ed828f9d1e869f2695f45cd1c390634836dc3c90604401602060405180830381865af41580156115b2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d69190612af3565b63ffffffff1614611619576115f382670214e8348c4f00006122e3565b611606906001600160801b038e16612ac4565b851015611613575f61161d565b8161161d565b6009545b90505f61163282670214e8348c4f00006122e3565b905061164061012c886129f0565b97507365fdfdfb5f6571ed828f9d1e869f2695f45cd1c363158a3b1261166861012c8b612ad7565b6040516001600160e01b031960e084901b16815263ffffffff919091166004820152602401602060405180830381865af41580156116a8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116cc9190612af3565b96508963ffffffff168963ffffffff16036116ee578c6001600160801b03169a505b6116fd61012c62015180612b22565b61ffff1661171163ffffffff861683612bc2565b61171b9190612b47565b611725908e612b7c565b9c508861173181612bd9565b99505050505050506114a1565b5050505b600454600160c01b900463ffffffff165f9081526008602090815260408083208151808301909252546001600160801b038082168352600160801b90910416918101829052919015611794575f611797565b81515b6040516370a0823160e01b81523060048201529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156117fc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118209190612aad565b61182a8289612b7c565b6001600160801b031611156118c6576040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561189b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118bf9190612aad565b96506118d3565b6118d08188612b7c565b96505b505050509193509193565b6001600160a01b038116610963576040516359c662df60e11b815260040160405180910390fd5b5f546001600160a01b031633146108d25760405163118cdaa760e01b8152336004820152602401610951565b604080516060810182525f8082526020820181905291810191909152826001600160a01b0316846001600160a01b0316111561196b579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b5f81602001516001600160a01b0316825f01516001600160a01b0316106119c0575f5ffd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b5f5f5f836001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015611ac0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae49190612c0e565b5050509350935050505f8161ffff1611611b255760405162461bcd60e51b81526020600482015260026024820152614e4960f01b6044820152606401610951565b5f806001600160a01b03861663252c09d784611b42876001612a12565b611b4c9190612ca1565b6040516001600160e01b031960e084901b16815261ffff9091166004820152602401608060405180830381865afa158015611b89573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bad9190612cd5565b93505050915080611c255760405163252c09d760e01b81525f60048201526001600160a01b0387169063252c09d790602401608060405180830381865afa158015611bfa573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c1e9190612cd5565b5091935050505b611c2f82426129f0565b9695505050505050565b5f5f8263ffffffff165f03611c755760405162461bcd60e51b8152602060048201526002602482015261042560f41b6044820152606401610951565b6040805160028082526060820183525f9260208301908036833701905050905083815f81518110611ca857611ca8612d3e565b602002602001019063ffffffff16908163ffffffff16815250505f81600181518110611cd657611cd6612d3e565b602002602001019063ffffffff16908163ffffffff16815250505f5f866001600160a01b031663883bdbfd846040518263ffffffff1660e01b8152600401611d1e9190612d52565b5f60405180830381865afa158015611d38573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611d5f9190810190612e61565b915091505f825f81518110611d7657611d76612d3e565b602002602001015183600181518110611d9157611d91612d3e565b6020026020010151611da39190612f26565b90505f825f81518110611db857611db8612d3e565b602002602001015183600181518110611dd357611dd3612d3e565b6020026020010151611de59190612f53565b905063ffffffff8816611df88184612f72565b97505f8360060b128015611e175750611e118184612fae565b60060b15155b15611e2a5787611e2681612fcf565b9850505b63ffffffff8916640100000000600160c01b03602084901b16611e546001600160a01b0383612ff0565b611e5e9190613021565b9750505050505050509250929050565b5f5f5f8360020b12611e83578260020b611e8a565b8260020b5f035b9050620d89e8811115611eb0576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f03611ec557600160801b611ed7565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611f0b576ffff97272373d413259a46990580e213a0260801c5b6004821615611f2a576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615611f49576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615611f68576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611f87576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611fa6576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611fc5576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611fe5576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612005576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612025576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612045576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612065576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612085576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156120a5576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156120c5576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156120e6576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615612106576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615612125576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615612142576b048a170391f7dc42444e8fa20260801c5b5f8460020b131561216157805f198161215d5761215d612b0e565b0490505b640100000000810615612175576001612177565b5f5b60ff16602082901c0192505050919050565b5f6001600160801b036001600160a01b038616116121fc575f6121b660026001600160a01b038816613132565b9050826001600160a01b0316846001600160a01b0316106121e5576121e0600160c01b8683612766565b6121f4565b6121f48186600160c01b612766565b91505061225c565b5f61221a6001600160a01b0387168068010000000000000000612766565b9050826001600160a01b0316846001600160a01b03161061224957612244600160801b8683612766565b612258565b6122588186600160801b612766565b9150505b949350505050565b600180546001600160a01b03191690556109638161281c565b6002546001600160a01b031633148061229f57505f546001600160a01b031633145b6108d2576040516371dd489b60e11b815260040160405180910390fd5b8063ffffffff1642111561096357604051630407b05b60e31b815260040160405180910390fd5b5f815f190483118202156122fe5763c4c5d7f55f526004601cfd5b50670de0b6b3a764000091020490565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018590525f919087169063095ea7b3906044016020604051808303815f875af115801561237d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123a19190612a94565b506040516bffffffffffffffffffffffff19606088811b8216602084015261027160ec1b603484015287901b1660378201525f90604b0160405160208183030381529060405290505f5f6123f6898989610777565b915091505f865f14612408578661241b565b61241b83836001600160e01b03166122e3565b6040805160a08101825286815230602082015263ffffffff891681830152606081018b905260808101839052905163c04b8d5960e01b8152919250907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c04b8d5990612496908490600401613140565b6020604051808303815f875af11580156124b2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124d69190612aad565b9b9a5050505050505050505050565b6040516001600160a01b0383811660248301526044820183905261251691859182169063a9059cbb90606401610ffb565b505050565b5f5f60205f8451602086015f885af18061253a576040513d5f823e3d81fd5b50505f513d9150811561255157806001141561255e565b6001600160a01b0384163b155b1561102d57604051635274afe760e01b81526001600160a01b0385166004820152602401610951565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000164263ffffffff1610806125e657504260045463ffffffff918216916125de91600160e01b90041662015180612ad7565b63ffffffff16115b156125ee5750565b5f6126197f0000000000000000000000000000000000000000000000000000000000000000426129f0565b90505f6126296201518083612b9b565b6040516370a0823160e01b81523060048201529091505f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015612690573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126b49190612aad565b90508084116126cc576126c78482612a72565b6126ce565b5f5b6009556126de8262015180612a4c565b612708907f0000000000000000000000000000000000000000000000000000000000000000612ad7565b6004601c6101000a81548163ffffffff021916908363ffffffff16021790555050505050565b5f61273b61012c83612b47565b600454909150600160a01b900463ffffffff1615612761578061275d816131af565b9150505b919050565b5f838302815f1985870982811083820303915050805f0361279a5783828161279057612790612b0e565b0492505050610df2565b8084116127b1576127b1600385150260111861286b565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b715f52806020526024601cfd5b5f6020828403121561288c575f5ffd5b5035919050565b6001600160a01b0381168114610963575f5ffd5b5f602082840312156128b7575f5ffd5b8135610df281612893565b5f5f5f606084860312156128d4575f5ffd5b83356128df81612893565b925060208401356128ef81612893565b929592945050506040919091013590565b5f60208284031215612910575f5ffd5b81356001600160801b0381168114610df2575f5ffd5b63ffffffff81168114610963575f5ffd5b5f5f5f60608486031215612949575f5ffd5b833561295481612893565b925060208401356001600160e01b038116811461296f575f5ffd5b9150604084013561297f81612926565b809150509250925092565b5f6020828403121561299a575f5ffd5b8135610df281612926565b5f5f604083850312156129b6575f5ffd5b82356129c181612893565b915060208301356129d181612893565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b63ffffffff8281168282160390811115612a0c57612a0c6129dc565b92915050565b61ffff8181168382160190811115612a0c57612a0c6129dc565b67ffffffffffffffff8281168282160390811115612a0c57612a0c6129dc565b63ffffffff8181168382160290811690818114612a6b57612a6b6129dc565b5092915050565b81810381811115612a0c57612a0c6129dc565b80518015158114612761575f5ffd5b5f60208284031215612aa4575f5ffd5b610df282612a85565b5f60208284031215612abd575f5ffd5b5051919050565b80820180821115612a0c57612a0c6129dc565b63ffffffff8181168382160190811115612a0c57612a0c6129dc565b5f60208284031215612b03575f5ffd5b8151610df281612926565b634e487b7160e01b5f52601260045260245ffd5b5f62ffffff831680612b3657612b36612b0e565b8062ffffff84160491505092915050565b5f82612b5557612b55612b0e565b500490565b6001600160801b038181168382160290811690818114612a6b57612a6b6129dc565b6001600160801b038181168382160190811115612a0c57612a0c6129dc565b5f63ffffffff831680612bb057612bb0612b0e565b8063ffffffff84160491505092915050565b8082028115828204841417612a0c57612a0c6129dc565b5f63ffffffff821663ffffffff8103612bf457612bf46129dc565b60010192915050565b805161ffff81168114612761575f5ffd5b5f5f5f5f5f5f5f60e0888a031215612c24575f5ffd5b8751612c2f81612893565b8097505060208801518060020b8114612c46575f5ffd5b9550612c5460408901612bfd565b9450612c6260608901612bfd565b9350612c7060808901612bfd565b925060a088015160ff81168114612c85575f5ffd5b9150612c9360c08901612a85565b905092959891949750929550565b5f61ffff831680612cb457612cb4612b0e565b8061ffff84160691505092915050565b8051600681900b8114612761575f5ffd5b5f5f5f5f60808587031215612ce8575f5ffd5b8451612cf381612926565b9350612d0160208601612cc4565b92506040850151612d1181612893565b9150612d1f60608601612a85565b905092959194509250565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f918401906040840190835b81811015612d8f57835163ffffffff16835260209384019390920191600101612d6b565b509095945050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612dc357612dc3612d2a565b604052919050565b5f67ffffffffffffffff821115612de457612de4612d2a565b5060051b60200190565b5f82601f830112612dfd575f5ffd5b8151612e10612e0b82612dcb565b612d9a565b8082825260208201915060208360051b860101925085831115612e31575f5ffd5b602085015b83811015612e57578051612e4981612893565b835260209283019201612e36565b5095945050505050565b5f5f60408385031215612e72575f5ffd5b825167ffffffffffffffff811115612e88575f5ffd5b8301601f81018513612e98575f5ffd5b8051612ea6612e0b82612dcb565b8082825260208201915060208360051b850101925087831115612ec7575f5ffd5b6020840193505b82841015612ef057612edf84612cc4565b825260209384019390910190612ece565b80955050505050602083015167ffffffffffffffff811115612f10575f5ffd5b612f1c85828601612dee565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715612a0c57612a0c6129dc565b6001600160a01b038281168282160390811115612a0c57612a0c6129dc565b5f8160060b8360060b80612f8857612f88612b0e565b667fffffffffffff1982145f1982141615612fa557612fa56129dc565b90059392505050565b5f8260060b80612fc057612fc0612b0e565b808360060b0791505092915050565b5f8160020b627fffff198103612fe757612fe76129dc565b5f190192915050565b6001600160c01b03818116838216818102909216918183048114821517613019576130196129dc565b505092915050565b5f6001600160c01b0383168061303957613039612b0e565b6001600160c01b03929092169190910492915050565b6001815b600184111561308a5780850481111561306e5761306e6129dc565b600184161561307c57908102905b60019390931c928002613053565b935093915050565b5f826130a057506001612a0c565b816130ac57505f612a0c565b81600181146130c257600281146130cc576130e8565b6001915050612a0c565b60ff8411156130dd576130dd6129dc565b50506001821b612a0c565b5060208310610133831016604e8410600b841016171561310b575081810a612a0c565b6131175f19848461304f565b805f190482111561312a5761312a6129dc565b029392505050565b5f610df260ff841683613092565b602081525f825160a0602084015280518060c0850152806020830160e086015e5f60e0828601015260018060a01b0360208601511660408501526040850151606085015260608501516080850152608085015160a085015260e0601f19601f8301168501019250505092915050565b5f61ffff821680612fe757612fe76129dc56fea2646970667358221220791b02994e6d1b932f89465fcf64643a684e25352e0e0456afc415552c0e41b664736f6c634300081b0033000000000000000000000000000000000000000000000000000000006766c9e000000000000000000000000096a5399d07896f757bd4c6ef56461f58db951862000000000000000000000000d7fa4cfc22ea07dfced53033fbe59d8b62b8ee9e000000000000000000000000e592427a0aece92de3edee1f18e0157c058615640000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9840000000000000000000000008096483378845fdcda7fba3f7d6114916f9eee7c