0x6080604052348015600e575f5ffd5b506134968061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610254575f3560e01c80638376f7f811610140578063d20e78c9116100bf578063df93506511610084578063df935065146105dd578063e3b05f2f146105f0578063e481af9d14610603578063ea4d3c9b1461060b578063f2fde38b1461061e578063f9120af614610631575f5ffd5b8063d20e78c914610571578063d574ea3d14610584578063d9d4e99f14610597578063ddb49ce1146105b7578063ddf6a51b146105ca575f5ffd5b806395b6ef0c1161010557806395b6ef0c1461051d5780639926ee7d14610530578063a364f4da14610543578063c0443c5f14610556578063d18a132514610569575f5ffd5b80638376f7f8146104a1578063862621ef146104b45780638ad96602146104c75780638da5cb5b146104da578063949528fc1461050a575f5ffd5b806333cfb7b7116101d75780636b3aa72e1161019c5780636b3aa72e1461041f5780636b4c991b14610432578063715018a614610445578063749dccc71461044d578063750521f51461047b578063786bf3c31461048e575f5ffd5b806333cfb7b7146103b357806334099ba1146103d35780635140a548146103e657806366f17e73146103f9578063683048351461040c575f5ffd5b8063175188e81161021d578063175188e81461035057806318cea58d146103635780631a8d0de21461037657806320af739014610389578063245a7bfc146103a0575f5ffd5b80621ba1eb146102585780630b3ce0151461026d5780630ff26fd11461028b57806313e7c9d8146102cb578063140a16bc14610302575b5f5ffd5b61026b61026636600461274f565b610644565b005b6102756107e5565b60405161028291906127b4565b60405180910390f35b6102b3610299366004612817565b60016020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610282565b6102f46102d9366004612817565b5f602081905290815260409020805460019091015460ff1682565b60405161028292919061284d565b610340610310366004612932565b600260209081525f9283526040909220815180830184018051928152908401929093019190912091525460ff1681565b6040519015158152602001610282565b61026b61035e366004612817565b6108b9565b610340610371366004612a44565b6109ed565b61026b610384366004612817565b610fb4565b610392600d5481565b604051908152602001610282565b6009546102b3906001600160a01b031681565b6103c66103c1366004612817565b611005565b6040516102829190612b72565b61026b6103e1366004612b84565b61117e565b61026b6103f4366004612c04565b6111fa565b61026b610407366004612c9a565b61146b565b600b546102b3906001600160a01b031681565b600c546102b3906001600160a01b031681565b61026b610440366004612b84565b611597565b61026b611618565b61034061045b366004612b84565b805160208183018101805160048252928201919093012091525460ff1681565b61026b610489366004612b84565b61162b565b61026b61049c366004612cdd565b611693565b61026b6104af366004612cdd565b611704565b61026b6104c2366004612817565b611771565b61026b6104d5366004612d1b565b6117c2565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166102b3565b610392610518366004612d32565b6117fc565b61026b61052b366004612d63565b611892565b61026b61053e366004612dd8565b6119f2565b61026b610551366004612817565b611c81565b61026b610564366004612e8a565b611e27565b610275611f95565b61026b61057f366004612ef6565b612060565b6102b3610592366004612d1b565b6121b7565b6105aa6105a5366004612b84565b6121df565b6040516102829190612f43565b6105aa6105c5366004612d1b565b612282565b6105aa6105d8366004612b84565b6122a9565b6105aa6105eb366004612d1b565b6122cd565b61026b6105fe366004612817565b6122dc565b6103c661232d565b600a546102b3906001600160a01b031681565b61026b61062c366004612817565b61238d565b61026b61063f366004612817565b6123ca565b6001335f9081526020819052604090206001015460ff16600281111561066c5761066c612839565b146106f25760405162461bcd60e51b8152602060048201526044602482018190527f536572766963654d616e616765722e726f746174655072656469636174655369908201527f676e696e674b65793a206f70657261746f72206973206e6f7420726567697374606482015263195c995960e21b608482015260a4015b60405180910390fd5b6001600160a01b038281165f908152600160205260409020541633146107a65760405162461bcd60e51b815260206004820152605760248201527f536572766963654d616e616765722e726f74617465507265646963617465536960448201527f676e696e674b65793a206f70657261746f722063616e206f6e6c79206368616e60648201527f67652069742773206f776e207369676e696e67206b6579000000000000000000608482015260a4016106e9565b6001600160a01b039182165f9081526001602052604080822080546001600160a01b031990811690915592909316815291909120805490911633179055565b60606006805480602002602001604051908101604052809291908181526020015f905b828210156108b0578382905f5260205f2001805461082590612f55565b80601f016020809104026020016040519081016040528092919081815260200182805461085190612f55565b801561089c5780601f106108735761010080835404028352916020019161089c565b820191905f5260205f20905b81548152906001019060200180831161087f57829003601f168201915b505050505081526020019060010190610808565b50505050905090565b6108c161241b565b5f5b60085481146109e957816001600160a01b0316600882815481106108e9576108e9612f87565b5f918252602090912001546001600160a01b0316036109e1576008805461091290600190612faf565b8154811061092257610922612f87565b5f91825260209091200154600880546001600160a01b03909216918390811061094d5761094d612f87565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550600880548061098957610989612fc2565b5f8281526020812082015f1990810180546001600160a01b03191690559091019091556040516001600160a01b038416917f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea491a25050565b6001016108c3565b5050565b5f6109fe60e0850160c08601612fd6565b63ffffffff165f03610a755760405162461bcd60e51b815260206004820152604760248201525f5160206134415f395f51905f5260448201527f3a2071756f72756d207468726573686f6c6420636f756e742063616e6e6f74206064820152666265207a65726f60c81b608482015260a4016106e9565b8151835114610ad65760405162461bcd60e51b815260206004820152602760248201527f4d69736d61746368206265747765656e207369676e65727320616e64207369676044820152666e61747572657360c81b60648201526084016106e9565b8360e00135431115610b355760405162461bcd60e51b815260206004820152603560248201525f5160206134415f395f51905f526044820152740e881d1c985b9cd858dd1a5bdb88195e1c1a5c9959605a1b60648201526084016106e9565b6004610b418580612ff9565b604051610b4f92919061303b565b9081526040519081900360200190205460ff1615610bc25760405162461bcd60e51b815260206004820152603760248201525f5160206134415f395f51905f5260448201527f3a207461736b20494420616c7265616479207370656e7400000000000000000060648201526084016106e9565b5f600e610bd260a0870187612ff9565b604051610be092919061303b565b9081526020016040518091039020549050805f14158015610c15575080610c0d60e0870160c08801612fd6565b63ffffffff16145b610ca85760405162461bcd60e51b815260206004820152606560248201525f5160206134415f395f51905f5260448201527f3a206465706c6f79656420706f6c6963792071756f72756d207468726573686f60648201527f6c6420646966666572732066726f6d207461736b2071756f72756d20746872656084820152641cda1bdb1960da1b60a482015260c4016106e9565b5f610cb2866117fc565b90505f5b610cc660e0880160c08901612fd6565b63ffffffff16811015610ec8575f81118015610d30575085610ce9600183612faf565b81518110610cf957610cf9612f87565b60200260200101516001600160a01b0316868281518110610d1c57610d1c612f87565b60200260200101516001600160a01b031611155b15610d905760405162461bcd60e51b815260206004820152602a60248201527f5369676e657220616464726573736573206d75737420626520756e6971756520604482015269185b99081cdbdc9d195960b21b60648201526084016106e9565b5f610db483878481518110610da757610da7612f87565b6020026020010151612476565b9050868281518110610dc857610dc8612f87565b60200260200101516001600160a01b0316816001600160a01b031614610e245760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b60448201526064016106e9565b6001600160a01b038181165f90815260016020818152604080842054909416808452908390529290912081015460ff166002811115610e6557610e65612839565b14610ebe5760405162461bcd60e51b815260206004820152602360248201527f5369676e6572206973206e6f7420612072656769737465726564206f706572616044820152623a37b960e91b60648201526084016106e9565b5050600101610cb6565b5060608601803590610edd9060408901612817565b6001600160a01b0316610ef66040890160208a01612817565b6001600160a01b03167f9f851f9b4b4a1023918bda08f974ba8a757d5e8c1d8d4131e9963fdd64bd1a4d610f2d60a08b018b612ff9565b610f378c80612ff9565b8d60c0016020810190610f4a9190612fd6565b8e60e001358e604051610f639796959493929190613072565b60405180910390a460016004610f798880612ff9565b604051610f8792919061303b565b908152604051908190036020019020805491151560ff199092169190911790555060019150509392505050565b610fbc61241b565b600a80546001600160a01b0319166001600160a01b0383169081179091556040517fa1b8fcd417a2bb56a91d1fc6708faf8283b5730e55821393e70303e544aeec92905f90a250565b6008546060905f906001600160401b038111156110245761102461287d565b60405190808252806020026020018201604052801561104d578160200160208202803683370190505b5090505f805b60085481101561117557600a54600880545f926001600160a01b03169163778e55f3918991908690811061108957611089612f87565b5f9182526020909120015460405160e084901b6001600160e01b03191681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156110dd573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061110191906130cc565b111561116d576008818154811061111a5761111a612f87565b905f5260205f20015f9054906101000a90046001600160a01b031683838151811061114757611147612f87565b6001600160a01b039092166020928302919091019091015281611169816130e3565b9250505b600101611053565b50909392505050565b335f90815260026020526040808220905161119a9084906130fb565b908152604051908190036020018120805492151560ff19909316929092179091556111c69082906130fb565b6040519081900381209033907f64296597d208d70296fadc8eb749ff22ab651c8e6e455f35ee8ed66b74d1f775905f90a350565b82811461121a5760405163371821d760e21b815260040160405180910390fd5b60605f5f5f5b80851461140a5787878281811061123957611239612f87565b905060200281019061124b9190613111565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201829052509397505050505b84518110156114015784818151811061129957611299612f87565b6020908102919091018101516001600160a01b0381165f90815291829052604082209095509350600184015460ff1660028111156112d9576112d9612839565b036112f75760405163ba6435f160e01b815260040160405180910390fd5b5f5f5b60085481146113ba57600a54600880546001600160a01b039092169163778e55f39189918590811061132e5761132e612f87565b5f9182526020909120015460405160e084901b6001600160e01b03191681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611382573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a691906130cc565b6113b09083613156565b91506001016112fa565b50808455600d5481106113ce5760016113d1565b60025b60018086018054909160ff19909116908360028111156113f3576113f3612839565b02179055505060010161127e565b50600101611220565b50848460405161141b92919061303b565b60405180910390208787604051611433929190613169565b604051908190038120907ff3fcd2dadc5f6ebf9c1e9310a9e986a14079afc7ecf26784853ea9a3ac90721b905f90a350505050505050565b61147361241b565b600b546040516356e4026d60e11b815260ff84166004820152602481018390525f916001600160a01b03169063adc804da906044016040805180830381865afa1580156114c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114e6919061320e565b9050836001600160a01b0316815f01516001600160a01b03161461151d5760405163a4e34a6960e01b815260040160405180910390fd5b600880546001810182555f9182527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b03871690811790915560405190917f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f191a250505050565b335f90815260026020526040908190209051600191906115b89084906130fb565b908152604051908190036020018120805492151560ff19909316929092179091556115e49082906130fb565b6040519081900381209033907ffbc30d1514eac402cb2045f1dd80ec75fbc997db6f719421b6d7490f4bfb779d905f90a350565b61162061241b565b6116295f6124a0565b565b61163361241b565b600c5460405163a98fb35560e01b81526001600160a01b039091169063a98fb35590611663908490600401612f43565b5f604051808303815f87803b15801561167a575f5ffd5b505af115801561168c573d5f5f3e3d5ffd5b5050505050565b61169b61241b565b5f5b818110156116ff575f600f5f8585858181106116bb576116bb612f87565b90506020020160208101906116d09190612817565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161169d565b505050565b61170c61241b565b5f5b818110156116ff576001600f5f85858581811061172d5761172d612f87565b90506020020160208101906117429190612817565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161170e565b61177961241b565b600c80546001600160a01b0319166001600160a01b0383169081179091556040517f2a623245c0f1c5741f2a4c247a58842872f1fdf8a31e66d031dd1cd1532e89a7905f90a250565b6117ca61241b565b600d81905560405181907f76f50103a7b1e136f23c29045235143c62e36705e8253019cb1253d9062bc6d4905f90a250565b5f6118078280612ff9565b6118176040850160208601612817565b6118276060860160408701612817565b60608601356118396080880188612ff9565b61184660a08a018a612ff9565b61185660e08c0160c08d01612fd6565b8b60e001356040516020016118759b9a9998979695949392919061327c565b604051602081830303815290604052805190602001209050919050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f811580156118d65750825b90505f826001600160401b031660011480156118f15750303b155b9050811580156118ff575080155b1561191d5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561194757845460ff60401b1916600160401b1785555b6119508b612510565b600980546001600160a01b03808d166001600160a01b031992831617909255600a80548c8416908316179055600b80548b8416908316179055600c8054928a1692909116919091179055600d86905583156119e557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b6001600160a01b038281165f908152600160205260409020541615611a895760405162461bcd60e51b815260206004820152604160248201527f536572766963654d616e616765722e72656769737465724f70657261746f725460448201527f6f4156533a206f70657261746f7220616c7265616479207265676973746572656064820152601960fa1b608482015260a4016106e9565b5f5f5b6008548114611b4c57600a54600880546001600160a01b039092169163778e55f391339185908110611ac057611ac0612f87565b5f9182526020909120015460405160e084901b6001600160e01b03191681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611b14573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b3891906130cc565b611b429083613156565b9150600101611a8c565b50600d5481106116ff57604080518082019091528181526020810160019052335f90815260208181526040909120825181559082015160018083018054909160ff1990911690836002811115611ba457611ba4612839565b021790555050506001600160a01b038084165f9081526001602090815260409182902080546001600160a01b0319163390811790915582516060810184528651815286830151928101929092528583015182840152600c549251639926ee7d60e01b815291939290921691639926ee7d91611c24919085906004016132f8565b5f604051808303815f87803b158015611c3b575f5ffd5b505af1158015611c4d573d5f5f3e3d5ffd5b50506040513392507f4d0eb1f4bac8744fd2be119845e23b3befc88094b42bcda1204c65694a00f9e591505f90a250505050565b611c8961241b565b6001600160a01b0381165f9081526020819052604081206001015460ff166002811115611cb857611cb8612839565b03611d395760405162461bcd60e51b8152602060048201526044602482018190527f536572766963654d616e616765722e646572656769737465724f70657261746f908201527f7246726f6d4156533a206f70657261746f72206973206e6f7420726567697374606482015263195c995960e21b608482015260a4016106e9565b604080518082019091525f815260208101600290526001600160a01b0382165f90815260208181526040909120825181559082015160018083018054909160ff1990911690836002811115611d9057611d90612839565b021790555050600c546040516351b27a6d60e11b81526001600160a01b038481166004830152909116915063a364f4da906024015f604051808303815f87803b158015611ddb575f5ffd5b505af1158015611ded573d5f5f3e3d5ffd5b50506040516001600160a01b03841692507f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d91505f90a250565b611e2f61241b565b600383604051611e3f91906130fb565b90815260200160405180910390208054611e5890612f55565b159050611eba5760405162461bcd60e51b815260206004820152602a60248201527f536572766963654d616e616765722e6465706c6f79506f6c6963793a20706f6c6044820152696963792065786973747360b01b60648201526084016106e9565b81600384604051611ecb91906130fb565b90815260200160405180910390209081611ee59190613386565b5080600e84604051611ef791906130fb565b90815260405190819003602001902055600680546001810182555f919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01611f428482613386565b5082604051611f5191906130fb565b60405180910390207fb6487025b06543ad686bdaa829e2b07863fd163cacd2e0f031340308ec09584e83604051611f889190612f43565b60405180910390a2505050565b60606007805480602002602001604051908101604052809291908181526020015f905b828210156108b0578382905f5260205f20018054611fd590612f55565b80601f016020809104026020016040519081016040528092919081815260200182805461200190612f55565b801561204c5780601f106120235761010080835404028352916020019161204c565b820191905f5260205f20905b81548152906001019060200180831161202f57829003601f168201915b505050505081526020019060010190611fb8565b61206861241b565b60058260405161207891906130fb565b9081526020016040518091039020805461209190612f55565b1590506120fe5760405162461bcd60e51b815260206004820152603560248201527f536572766963654d616e616765722e6465706c6f79536f6369616c47726170686044820152743a20736f6369616c2067726170682065786973747360581b60648201526084016106e9565b8060058360405161210f91906130fb565b908152602001604051809103902090816121299190613386565b50600780546001810182555f919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688016121658382613386565b508160405161217491906130fb565b60405180910390207f0547683ac2bbf227b34fe50fb3ef0f2b8a67dfad502dc794e7a69b0a8dd3e680826040516121ab9190612f43565b60405180910390a25050565b600881815481106121c6575f80fd5b5f918252602090912001546001600160a01b0316905081565b80516020818301810180516003825292820191909301209152805461220390612f55565b80601f016020809104026020016040519081016040528092919081815260200182805461222f90612f55565b801561227a5780601f106122515761010080835404028352916020019161227a565b820191905f5260205f20905b81548152906001019060200180831161225d57829003601f168201915b505050505081565b60068181548110612291575f80fd5b905f5260205f20015f91509050805461220390612f55565b80516020818301810180516005825292820191909301209152805461220390612f55565b60078181548110612291575f80fd5b6122e461241b565b600b80546001600160a01b0319166001600160a01b0383169081179091556040517fcb08c26360210256eb3fd98640509ba95a8a716bc3aa4aadc738e333102de737905f90a250565b6060600880548060200260200160405190810160405280929190818152602001828054801561238357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311612365575b5050505050905090565b61239561241b565b6001600160a01b0381166123be57604051631e4fbdf760e01b81525f60048201526024016106e9565b6123c7816124a0565b50565b6123d261241b565b600980546001600160a01b0319166001600160a01b0383169081179091556040517f602cec4b1583b07d071161da5eb9589444d2459201e2fab7753dc941e9351c21905f90a250565b3361244d7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146116295760405163118cdaa760e01b81523360048201526024016106e9565b5f5f5f5f6124848686612521565b925092509250612494828261256a565b50909150505b92915050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b612518612622565b6123c78161266b565b5f5f5f8351604103612558576020840151604085015160608601515f1a61254a88828585612673565b955095509550505050612563565b505081515f91506002905b9250925092565b5f82600381111561257d5761257d612839565b03612586575050565b600182600381111561259a5761259a612839565b036125b85760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156125cc576125cc612839565b036125ed5760405163fce698f760e01b8152600481018290526024016106e9565b600382600381111561260157612601612839565b036109e9576040516335e2f38360e21b8152600481018290526024016106e9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661162957604051631afcd79f60e31b815260040160405180910390fd5b612395612622565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156126ac57505f91506003905082612731565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156126fd573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811661272857505f925060019150829050612731565b92505f91508190505b9450945094915050565b6001600160a01b03811681146123c7575f5ffd5b5f5f60408385031215612760575f5ffd5b823561276b8161273b565b9150602083013561277b8161273b565b809150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561280b57603f198786030184526127f6858351612786565b945060209384019391909101906001016127da565b50929695505050505050565b5f60208284031215612827575f5ffd5b81356128328161273b565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b828152604081016003831061287057634e487b7160e01b5f52602160045260245ffd5b8260208301529392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156128b9576128b961287d565b604052919050565b5f82601f8301126128d0575f5ffd5b8135602083015f5f6001600160401b038411156128ef576128ef61287d565b50601f8301601f191660200161290481612891565b915050828152858383011115612918575f5ffd5b828260208301375f92810160200192909252509392505050565b5f5f60408385031215612943575f5ffd5b823561294e8161273b565b915060208301356001600160401b03811115612968575f5ffd5b612974858286016128c1565b9150509250929050565b5f610100828403121561298f575f5ffd5b50919050565b5f6001600160401b038211156129ad576129ad61287d565b5060051b60200190565b5f82601f8301126129c6575f5ffd5b81356129d96129d482612995565b612891565b8082825260208201915060208360051b8601019250858311156129fa575f5ffd5b602085015b83811015612a3a5780356001600160401b03811115612a1c575f5ffd5b612a2b886020838a01016128c1565b845250602092830192016129ff565b5095945050505050565b5f5f5f60608486031215612a56575f5ffd5b83356001600160401b03811115612a6b575f5ffd5b612a778682870161297e565b93505060208401356001600160401b03811115612a92575f5ffd5b8401601f81018613612aa2575f5ffd5b8035612ab06129d482612995565b8082825260208201915060208360051b850101925088831115612ad1575f5ffd5b6020840193505b82841015612afc578335612aeb8161273b565b825260209384019390910190612ad8565b945050505060408401356001600160401b03811115612b19575f5ffd5b612b25868287016129b7565b9150509250925092565b5f8151808452602084019350602083015f5b82811015612b685781516001600160a01b0316865260209586019590910190600101612b41565b5093949350505050565b602081525f6128326020830184612b2f565b5f60208284031215612b94575f5ffd5b81356001600160401b03811115612ba9575f5ffd5b612bb5848285016128c1565b949350505050565b5f5f83601f840112612bcd575f5ffd5b5081356001600160401b03811115612be3575f5ffd5b6020830191508360208260051b8501011115612bfd575f5ffd5b9250929050565b5f5f5f5f60408587031215612c17575f5ffd5b84356001600160401b03811115612c2c575f5ffd5b612c3887828801612bbd565b90955093505060208501356001600160401b03811115612c56575f5ffd5b8501601f81018713612c66575f5ffd5b80356001600160401b03811115612c7b575f5ffd5b876020828401011115612c8c575f5ffd5b949793965060200194505050565b5f5f5f60608486031215612cac575f5ffd5b8335612cb78161273b565b9250602084013560ff81168114612ccc575f5ffd5b929592945050506040919091013590565b5f5f60208385031215612cee575f5ffd5b82356001600160401b03811115612d03575f5ffd5b612d0f85828601612bbd565b90969095509350505050565b5f60208284031215612d2b575f5ffd5b5035919050565b5f60208284031215612d42575f5ffd5b81356001600160401b03811115612d57575f5ffd5b612bb58482850161297e565b5f5f5f5f5f5f60c08789031215612d78575f5ffd5b8635612d838161273b565b95506020870135612d938161273b565b94506040870135612da38161273b565b93506060870135612db38161273b565b92506080870135612dc38161273b565b9598949750929591949360a090920135925050565b5f5f60408385031215612de9575f5ffd5b8235612df48161273b565b915060208301356001600160401b03811115612e0e575f5ffd5b830160608186031215612e1f575f5ffd5b604051606081016001600160401b0381118282101715612e4157612e4161287d565b60405281356001600160401b03811115612e59575f5ffd5b612e65878285016128c1565b8252506020828101359082015260409182013591810191909152919491935090915050565b5f5f5f60608486031215612e9c575f5ffd5b83356001600160401b03811115612eb1575f5ffd5b612ebd868287016128c1565b93505060208401356001600160401b03811115612ed8575f5ffd5b612ee4868287016128c1565b93969395505050506040919091013590565b5f5f60408385031215612f07575f5ffd5b82356001600160401b03811115612f1c575f5ffd5b612f28858286016128c1565b92505060208301356001600160401b03811115612968575f5ffd5b602081525f6128326020830184612786565b600181811c90821680612f6957607f821691505b60208210810361298f57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8181038181111561249a5761249a612f9b565b634e487b7160e01b5f52603160045260245ffd5b5f60208284031215612fe6575f5ffd5b813563ffffffff81168114612832575f5ffd5b5f5f8335601e1984360301811261300e575f5ffd5b8301803591506001600160401b03821115613027575f5ffd5b602001915036819003821315612bfd575f5ffd5b818382375f9101908152919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60a081525f61308560a08301898b61304a565b828103602084015261309881888a61304a565b905063ffffffff8616604084015284606084015282810360808401526130be8185612b2f565b9a9950505050505050505050565b5f602082840312156130dc575f5ffd5b5051919050565b5f600182016130f4576130f4612f9b565b5060010190565b5f82518060208501845e5f920191825250919050565b5f5f8335601e19843603018112613126575f5ffd5b8301803591506001600160401b0382111561313f575f5ffd5b6020019150600581901b3603821315612bfd575f5ffd5b8082018082111561249a5761249a612f9b565b5f81848236829003601e19015b8682101561320257823581811261318b575f5ffd5b88016020810190356001600160401b038111156131a6575f5ffd5b8060051b36038213156131b7575f5ffd5b855f5b828110156131ea5783356131cd8161273b565b6001600160a01b03168252602093840193909101906001016131ba565b50809650505050602083019250600182019150613176565b50919695505050505050565b5f604082840312801561321f575f5ffd5b50604080519081016001600160401b03811182821017156132425761324261287d565b60405282516132508161273b565b815260208301516bffffffffffffffffffffffff81168114613270575f5ffd5b60208201529392505050565b61010081525f61329161010083018d8f61304a565b6001600160a01b038c811660208501528b166040840152606083018a905282810360808401526132c281898b61304a565b905082810360a08401526132d781878961304a565b63ffffffff9590951660c0840152505060e001529998505050505050505050565b60018060a01b0383168152604060208201525f82516060604084015261332160a0840182612786565b90506020840151606084015260408401516080840152809150509392505050565b601f8211156116ff57805f5260205f20601f840160051c810160208510156133675750805b601f840160051c820191505b8181101561168c575f8155600101613373565b81516001600160401b0381111561339f5761339f61287d565b6133b3816133ad8454612f55565b84613342565b6020601f8211600181146133e5575f83156133ce5750848201515b5f19600385901b1c1916600184901b17845561168c565b5f84815260208120601f198516915b8281101561341457878501518255602094850194600190920191016133f4565b508482101561343157868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fe536572766963654d616e616765722e5072656469636174655665726966696564a26469706673582212201ca14bca2033fed1f046b8c24c19bb612a773143a9558ed2caa746a9ab70b26d64736f6c634300081c0033