60c060405234801562000010575f80fd5b50604051620034f4380380620034f48339810160408190526200003391620002bf565b83838383838360128484818181818d6001600160a01b0381166200007057604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200007b8162000191565b506001600160a01b038083166080528116620000aa57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e1906024015f604051808303815f87803b158015620000ef575f80fd5b505af115801562000102573d5f803e3d5ffd5b50505050505050506200011a620001e060201b60201c565b60ff168360ff16101562000141576040516301e9714b60e41b815260040160405180910390fd5b6200014e6006846200035d565b6200015b90600a62000478565b60a052506008915062000171905083826200051b565b5060096200018082826200051b565b5050505050505050505050620005e3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600690565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000209575f80fd5b81516001600160401b0380821115620002265762000226620001e5565b604051601f8301601f19908116603f01168101908282118183101715620002515762000251620001e5565b816040528381526020925086838588010111156200026d575f80fd5b5f91505b8382101562000290578582018301518183018401529082019062000271565b5f93810190920192909252949350505050565b80516001600160a01b0381168114620002ba575f80fd5b919050565b5f805f8060808587031215620002d3575f80fd5b84516001600160401b0380821115620002ea575f80fd5b620002f888838901620001f9565b955060208701519150808211156200030e575f80fd5b506200031d87828801620001f9565b9350506200032e60408601620002a3565b91506200033e60608601620002a3565b905092959194509250565b634e487b7160e01b5f52601160045260245ffd5b60ff828116828216039081111562000379576200037962000349565b92915050565b600181815b80851115620003bf57815f1904821115620003a357620003a362000349565b80851615620003b157918102915b93841c939080029062000384565b509250929050565b5f82620003d75750600162000379565b81620003e557505f62000379565b8160018114620003fe5760028114620004095762000429565b600191505062000379565b60ff8411156200041d576200041d62000349565b50506001821b62000379565b5060208310610133831016604e8410600b84101617156200044e575081810a62000379565b6200045a83836200037f565b805f190482111562000470576200047062000349565b029392505050565b5f6200048860ff841683620003c7565b9392505050565b600181811c90821680620004a457607f821691505b602082108103620004c357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000516575f81815260208120601f850160051c81016020861015620004f15750805b601f850160051c820191505b818110156200051257828155600101620004fd565b5050505b505050565b81516001600160401b03811115620005375762000537620001e5565b6200054f816200054884546200048f565b84620004c9565b602080601f83116001811462000585575f84156200056d5750858301515b5f19600386901b1c1916600185901b17855562000512565b5f85815260208120601f198616915b82811015620005b55788860151825594840194600190910190840162000594565b5085821015620005d357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a051612ea96200064b5f395f81816105d701528181611a4a01528181611abc0152611ca501525f81816104c10152818161092f01528181611184015281816113f6015281816116fa015281816118a001528181611da60152611e5d0152612ea95ff3fe608060405260043610610249575f3560e01c80637d25a05e11610134578063bb0b6a53116100b3578063d045a0dc11610078578063d045a0dc14610705578063d424388514610718578063dd62ed3e14610737578063f2fde38b1461077b578063fc0c546a1461044a578063ff7bd03d1461079a575f80fd5b8063bb0b6a5314610668578063bc70b35414610693578063bd815db0146106b2578063c7c7f5b3146106c5578063ca5eb5e1146106e6575f80fd5b80639f68b964116100f95780639f68b964146105f9578063a9059cbb1461060b578063b731ea0a1461062a578063b92d0eff1461044a578063b98bd07014610649575f80fd5b80637d25a05e1461054a578063857749b0146105835780638da5cb5b1461059657806395d89b41146105b2578063963efcaa146105c6575f80fd5b806323b872dd116101cb5780635535d461116101905780635535d4611461045c5780635a0dfe4d1461047b5780635e280f11146104b05780636fc1b31e146104e357806370a0823114610502578063715018a614610536575f80fd5b806323b872dd146103bf578063313ce567146103de5780633400288b146103ff5780633b6f743b1461041e57806352ae28791461044a575f80fd5b8063134d4f2511610211578063134d4f2514610320578063156a0d0f1461034757806317442b701461036d57806318160ddd1461038d5780631f5e1334146103ab575f80fd5b806306fdde031461024d578063095ea7b3146102775780630d35b415146102a6578063111ecdad146102d457806313137d651461030b575b5f80fd5b348015610258575f80fd5b506102616107b9565b60405161026e91906120eb565b60405180910390f35b348015610282575f80fd5b50610296610291366004612111565b610849565b604051901515815260200161026e565b3480156102b1575f80fd5b506102c56102c0366004612151565b610862565b60405161026e93929190612182565b3480156102df575f80fd5b506004546102f3906001600160a01b031681565b6040516001600160a01b03909116815260200161026e565b61031e61031936600461226c565b61092d565b005b34801561032b575f80fd5b50610334600281565b60405161ffff909116815260200161026e565b348015610352575f80fd5b506040805162b9270b60e21b8152600160208201520161026e565b348015610378575f80fd5b5060408051600180825260208201520161026e565b348015610398575f80fd5b506007545b60405190815260200161026e565b3480156103b6575f80fd5b50610334600181565b3480156103ca575f80fd5b506102966103d9366004612304565b6109ed565b3480156103e9575f80fd5b5060125b60405160ff909116815260200161026e565b34801561040a575f80fd5b5061031e61041936600461235a565b610a12565b348015610429575f80fd5b5061043d610438366004612381565b610a6f565b60405161026e91906123cf565b348015610455575f80fd5b50306102f3565b348015610467575f80fd5b506102616104763660046123f7565b610ad3565b348015610486575f80fd5b5061029661049536600461235a565b63ffffffff919091165f908152600160205260409020541490565b3480156104bb575f80fd5b506102f37f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ee575f80fd5b5061031e6104fd366004612428565b610b75565b34801561050d575f80fd5b5061039d61051c366004612428565b6001600160a01b03165f9081526005602052604090205490565b348015610541575f80fd5b5061031e610bd2565b348015610555575f80fd5b5061056b61056436600461235a565b5f92915050565b6040516001600160401b03909116815260200161026e565b34801561058e575f80fd5b5060066103ed565b3480156105a1575f80fd5b505f546001600160a01b03166102f3565b3480156105bd575f80fd5b50610261610be5565b3480156105d1575f80fd5b5061039d7f000000000000000000000000000000000000000000000000000000000000000081565b348015610604575f80fd5b505f610296565b348015610616575f80fd5b50610296610625366004612111565b610bf4565b348015610635575f80fd5b506002546102f3906001600160a01b031681565b348015610654575f80fd5b5061031e610663366004612483565b610c01565b348015610673575f80fd5b5061039d6106823660046124c1565b60016020525f908152604090205481565b34801561069e575f80fd5b506102616106ad3660046124da565b610d67565b61031e6106c0366004612483565b610edc565b6106d86106d3366004612536565b611066565b60405161026e92919061259e565b3480156106f1575f80fd5b5061031e610700366004612428565b61115d565b61031e61071336600461226c565b6111de565b348015610723575f80fd5b5061031e610732366004612428565b61120d565b348015610742575f80fd5b5061039d6107513660046125ef565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b348015610786575f80fd5b5061031e610795366004612428565b611263565b3480156107a5575f80fd5b506102966107b436600461261b565b6112a0565b6060600880546107c890612635565b80601f01602080910402602001604051908101604052809291908181526020018280546107f490612635565b801561083f5780601f106108165761010080835404028352916020019161083f565b820191905f5260205f20905b81548152906001019060200180831161082257829003601f168201915b5050505050905090565b5f336108568185856112d4565b60019150505b92915050565b604080518082019091525f8082526020820152606061089260405180604001604052805f81526020015f81525090565b6040805180820182525f8082526001600160401b036020808401829052845183815290810190945291955091826108eb565b604080518082019091525f8152606060208201528152602001906001900390816108c45790505b5093505f8061090f604089013560608a013561090a60208c018c6124c1565b6112e6565b60408051808201909152918252602082015296989597505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461097d576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b6020870180359061099790610992908a6124c1565b611329565b146109d5576109a960208801886124c1565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610974565b6109e487878787878787611364565b50505050505050565b5f336109fa8582856114c2565b610a0585858561153d565b60019150505b9392505050565b610a1a61159a565b63ffffffff82165f81815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a15050565b604080518082019091525f80825260208201525f610a9d6040850135606086013561090a60208801886124c1565b9150505f80610aac86846115c6565b9092509050610ac9610ac160208801886124c1565b8383886116e5565b9695505050505050565b600360209081525f928352604080842090915290825290208054610af690612635565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2290612635565b8015610b6d5780601f10610b4457610100808354040283529160200191610b6d565b820191905f5260205f20905b815481529060010190602001808311610b5057829003601f168201915b505050505081565b610b7d61159a565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b610bda61159a565b610be35f6117c3565b565b6060600980546107c890612635565b5f3361085681858561153d565b610c0961159a565b5f5b81811015610d3557610c4d838383818110610c2857610c2861267b565b9050602002810190610c3a919061268f565b610c489060408101906126ad565b611812565b828282818110610c5f57610c5f61267b565b9050602002810190610c71919061268f565b610c7f9060408101906126ad565b60035f868686818110610c9457610c9461267b565b9050602002810190610ca6919061268f565b610cb49060208101906124c1565b63ffffffff1663ffffffff1681526020019081526020015f205f868686818110610ce057610ce061267b565b9050602002810190610cf2919061268f565b610d039060408101906020016126ef565b61ffff16815260208101919091526040015f2091610d22919083612755565b5080610d2d81612823565b915050610c0b565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748282604051610a63929190612863565b63ffffffff84165f90815260036020908152604080832061ffff87168452909152812080546060929190610d9a90612635565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc690612635565b8015610e115780601f10610de857610100808354040283529160200191610e11565b820191905f5260205f20905b815481529060010190602001808311610df457829003601f168201915b5050505050905080515f03610e5f5783838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929450610ed49350505050565b5f839003610e6e579050610ed4565b60028310610eb757610e808484611812565b80610e8e8460028188612942565b604051602001610ea093929190612969565b604051602081830303815290604052915050610ed4565b8383604051639a6d49cd60e01b815260040161097492919061298f565b949350505050565b5f5b81811015610fe95736838383818110610ef957610ef961267b565b9050602002810190610f0b91906129a2565b9050610f3d610f1d60208301836124c1565b602083013563ffffffff919091165f908152600160205260409020541490565b610f475750610fd7565b3063d045a0dc60c08301358360a0810135610f666101008301836126ad565b610f77610100890160e08a01612428565b610f856101208a018a6126ad565b6040518963ffffffff1660e01b8152600401610fa797969594939291906129cb565b5f604051808303818588803b158015610fbe575f80fd5b505af1158015610fd0573d5f803e3d5ffd5b5050505050505b80610fe181612823565b915050610ede565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611025573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261104c9190810190612a78565b604051638351eea760e01b815260040161097491906120eb565b61106e61205b565b604080518082019091525f80825260208201525f806110a26040880135606089013561109d60208b018b6124c1565b611853565b915091505f806110b289846115c6565b90925090506110de6110c760208b018b6124c1565b83836110d8368d90038d018d612b14565b8b61186f565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a9061112c908d018d6124c1565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b61116561159a565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b1580156111c5575f80fd5b505af11580156111d7573d5f803e3d5ffd5b5050505050565b3330146111fe5760405163029a949d60e31b815260040160405180910390fd5b6109e4878787878787876109d5565b61121561159a565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610bc7565b61126b61159a565b6001600160a01b03811661129457604051631e4fbdf760e01b81525f6004820152602401610974565b61129d816117c3565b50565b5f6020820180359060019083906112b790866124c1565b63ffffffff16815260208101919091526040015f20541492915050565b6112e18383836001611975565b505050565b5f806112f185611a47565b915081905083811015611321576040516371c4efed60e01b81526004810182905260248101859052604401610974565b935093915050565b63ffffffff81165f908152600160205260408120548061085c5760405163f6ff4fb760e01b815263ffffffff84166004820152602401610974565b5f6113756113728787611a7d565b90565b90505f6113a08261138e6113898a8a611a94565b611ab6565b61139b60208d018d6124c1565b611aea565b90506028861115611460575f6113dc6113bf60608c0160408d01612b44565b6113cc60208d018d6124c1565b846113d78c8c611afd565b611b47565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906114319086908d905f908790600401612b5f565b5f604051808303815f87803b158015611448575f80fd5b505af115801561145a573d5f803e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61149960208d018d6124c1565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b6001600160a01b038381165f908152600660209081526040808320938616835292905220545f198114611537578181101561152957604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610974565b61153784848484035f611975565b50505050565b6001600160a01b03831661156657604051634b637e8f60e11b81525f6004820152602401610974565b6001600160a01b03821661158f5760405163ec442f0560e01b81525f6004820152602401610974565b6112e1838383611b79565b5f546001600160a01b03163314610be35760405163118cdaa760e01b8152336004820152602401610974565b6060805f61162185602001356115db86611c9f565b6115e860a08901896126ad565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611cca92505050565b90935090505f81611633576001611636565b60025b905061165661164860208801886124c1565b826106ad60808a018a6126ad565b6004549093506001600160a01b0316156116dc576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb9161169b918891889101612b8f565b602060405180830381865afa1580156116b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116da9190612bb3565b505b50509250929050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff16815260200161174789611329565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161177c929190612bce565b6040805180830381865afa158015611796573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117ba9190612c74565b95945050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6118206002828486612942565b61182991612c8e565b60f01c9050600381146112e1578282604051639a6d49cd60e01b815260040161097492919061298f565b5f806118608585856112e6565b90925090506113213383611d44565b61187761205b565b5f611884845f0151611d7c565b60208501519091501561189e5761189e8460200151611da3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016118ee8c611329565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401611929929190612bce565b60806040518083038185885af1158015611945573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061196a9190612cbe565b979650505050505050565b6001600160a01b03841661199e5760405163e602df0560e01b81525f6004820152602401610974565b6001600160a01b0383166119c757604051634a1406b160e11b81525f6004820152602401610974565b6001600160a01b038085165f908152600660209081526040808320938716835292905220829055801561153757826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611a3991815260200190565b60405180910390a350505050565b5f7f0000000000000000000000000000000000000000000000000000000000000000611a738184612d23565b61085c9190612d42565b5f611a8b6020828486612942565b610a0b91612d59565b5f611aa3602860208486612942565b611aac91612d76565b60c01c9392505050565b5f61085c7f00000000000000000000000000000000000000000000000000000000000000006001600160401b038416612d42565b5f611af58484611e82565b509092915050565b6060611b0c8260288186612942565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001611b609493929190612da4565b6040516020818303038152906040529050949350505050565b6001600160a01b038316611ba3578060075f828254611b989190612df2565b90915550611c139050565b6001600160a01b0383165f9081526005602052604090205481811015611bf55760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610974565b6001600160a01b0384165f9081526005602052604090209082900390555b6001600160a01b038216611c2f57600780548290039055611c4d565b6001600160a01b0382165f9081526005602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c9291815260200190565b60405180910390a3505050565b5f61085c7f000000000000000000000000000000000000000000000000000000000000000083612d23565b8051606090151580611d13578484604051602001611cff92919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052611d3a565b84843385604051602001611d2a9493929190612e05565b6040516020818303038152906040525b9150935093915050565b6001600160a01b038216611d6d57604051634b637e8f60e11b81525f6004820152602401610974565b611d78825f83611b79565b5050565b5f813414611d9f576040516304fb820960e51b8152346004820152602401610974565b5090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e00573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e249190612e47565b90506001600160a01b038116611e4d576040516329b99a9560e11b815260040160405180910390fd5b611d786001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085611eb6565b6001600160a01b038216611eab5760405163ec442f0560e01b81525f6004820152602401610974565b611d785f8383611b79565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092019092526020810180516001600160e01b03166323b872dd60e01b179052611537918691905f90611f1b90841683611f68565b905080515f14158015611f3f575080806020019051810190611f3d9190612bb3565b155b156112e157604051635274afe760e01b81526001600160a01b0384166004820152602401610974565b6060610a0b83835f845f80856001600160a01b03168486604051611f8c9190612e62565b5f6040518083038185875af1925050503d805f8114611fc6576040519150601f19603f3d011682016040523d82523d5f602084013e611fcb565b606091505b5091509150610ac9868383606082611feb57611fe682612032565b610a0b565b815115801561200257506001600160a01b0384163b155b1561202b57604051639996b31560e01b81526001600160a01b0385166004820152602401610974565b5080610a0b565b8051156120425780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b0316815260200161209960405180604001604052805f81526020015f81525090565b905290565b5f5b838110156120b85781810151838201526020016120a0565b50505f910152565b5f81518084526120d781602086016020860161209e565b601f01601f19169290920160200192915050565b602081525f610a0b60208301846120c0565b6001600160a01b038116811461129d575f80fd5b5f8060408385031215612122575f80fd5b823561212d816120fd565b946020939093013593505050565b5f60e0828403121561214b575f80fd5b50919050565b5f60208284031215612161575f80fd5b81356001600160401b03811115612176575f80fd5b610ed48482850161213b565b83518152602080850151908201525f60a08201604060a08185015281865180845260c08601915060c08160051b870101935060208089015f5b838110156121fa5788870360bf190185528151805188528301518388018790526121e7878901826120c0565b97505093820193908201906001016121bb565b50508751606088015250505060208501516080850152509050610ed4565b5f6060828403121561214b575f80fd5b5f8083601f840112612238575f80fd5b5081356001600160401b0381111561224e575f80fd5b602083019150836020828501011115612265575f80fd5b9250929050565b5f805f805f805f60e0888a031215612282575f80fd5b61228c8989612218565b96506060880135955060808801356001600160401b03808211156122ae575f80fd5b6122ba8b838c01612228565b909750955060a08a013591506122cf826120fd565b90935060c089013590808211156122e4575f80fd5b506122f18a828b01612228565b989b979a50959850939692959293505050565b5f805f60608486031215612316575f80fd5b8335612321816120fd565b92506020840135612331816120fd565b929592945050506040919091013590565b803563ffffffff81168114612355575f80fd5b919050565b5f806040838503121561236b575f80fd5b61212d83612342565b801515811461129d575f80fd5b5f8060408385031215612392575f80fd5b82356001600160401b038111156123a7575f80fd5b6123b38582860161213b565b92505060208301356123c481612374565b809150509250929050565b81518152602080830151908201526040810161085c565b803561ffff81168114612355575f80fd5b5f8060408385031215612408575f80fd5b61241183612342565b915061241f602084016123e6565b90509250929050565b5f60208284031215612438575f80fd5b8135610a0b816120fd565b5f8083601f840112612453575f80fd5b5081356001600160401b03811115612469575f80fd5b6020830191508360208260051b8501011115612265575f80fd5b5f8060208385031215612494575f80fd5b82356001600160401b038111156124a9575f80fd5b6124b585828601612443565b90969095509350505050565b5f602082840312156124d1575f80fd5b610a0b82612342565b5f805f80606085870312156124ed575f80fd5b6124f685612342565b9350612504602086016123e6565b925060408501356001600160401b0381111561251e575f80fd5b61252a87828801612228565b95989497509550505050565b5f805f8385036080811215612549575f80fd5b84356001600160401b0381111561255e575f80fd5b61256a8782880161213b565b9450506040601f198201121561257e575f80fd5b506020840191506060840135612593816120fd565b809150509250925092565b5f60c082019050835182526001600160401b03602085015116602083015260408401516125d8604084018280518252602090810151910152565b5082516080830152602083015160a0830152610a0b565b5f8060408385031215612600575f80fd5b823561260b816120fd565b915060208301356123c4816120fd565b5f6060828403121561262b575f80fd5b610a0b8383612218565b600181811c9082168061264957607f821691505b60208210810361214b57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e198336030181126126a3575f80fd5b9190910192915050565b5f808335601e198436030181126126c2575f80fd5b8301803591506001600160401b038211156126db575f80fd5b602001915036819003821315612265575f80fd5b5f602082840312156126ff575f80fd5b610a0b826123e6565b601f8211156112e1575f81815260208120601f850160051c8101602086101561272e5750805b601f850160051c820191505b8181101561274d5782815560010161273a565b505050505050565b6001600160401b0383111561276c5761276c612667565b6127808361277a8354612635565b83612708565b5f601f8411600181146127b1575f851561279a5750838201355b5f19600387901b1c1916600186901b1783556111d7565b5f83815260209020601f19861690835b828110156127e157868501358255602094850194600190920191016127c1565b50868210156127fd575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b634e487b7160e01b5f52601160045260245ffd5b5f600182016128345761283461280f565b5060010190565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60208082528181018390525f906040808401600586901b8501820187855b8881101561293457878303603f190184528135368b9003605e190181126128a6575f80fd5b8a01606063ffffffff6128b883612342565b16855261ffff6128c98984016123e6565b168886015286820135601e198336030181126128e3575f80fd5b9091018781019190356001600160401b038111156128ff575f80fd5b80360383131561290d575f80fd5b818887015261291f828701828561283b565b96890196955050509186019150600101612881565b509098975050505050505050565b5f8085851115612950575f80fd5b8386111561295c575f80fd5b5050820193919092039150565b5f845161297a81846020890161209e565b8201838582375f930192835250909392505050565b602081525f610ed460208301848661283b565b5f823561013e198336030181126126a3575f80fd5b6001600160401b038116811461129d575f80fd5b63ffffffff6129d989612342565b168152602088013560208201525f60408901356129f5816129b7565b6001600160401b03811660408401525087606083015260e06080830152612a2060e08301878961283b565b6001600160a01b03861660a084015282810360c0840152612a4281858761283b565b9a9950505050505050505050565b604080519081016001600160401b0381118282101715612a7257612a72612667565b60405290565b5f60208284031215612a88575f80fd5b81516001600160401b0380821115612a9e575f80fd5b818401915084601f830112612ab1575f80fd5b815181811115612ac357612ac3612667565b604051601f8201601f19908116603f01168101908382118183101715612aeb57612aeb612667565b81604052828152876020848701011115612b03575f80fd5b61196a83602083016020880161209e565b5f60408284031215612b24575f80fd5b612b2c612a50565b82358152602083013560208201528091505092915050565b5f60208284031215612b54575f80fd5b8135610a0b816129b7565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f610ac960808301846120c0565b604081525f612ba160408301856120c0565b82810360208401526117ba81856120c0565b5f60208284031215612bc3575f80fd5b8151610a0b81612374565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a06080840152612c0360e08401826120c0565b90506060850151603f198483030160a0850152612c2082826120c0565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215612c56575f80fd5b612c5e612a50565b9050815181526020820151602082015292915050565b5f60408284031215612c84575f80fd5b610a0b8383612c46565b6001600160f01b03198135818116916002851015612cb65780818660020360031b1b83161692505b505092915050565b5f60808284031215612cce575f80fd5b604051606081018181106001600160401b0382111715612cf057612cf0612667565b604052825181526020830151612d05816129b7565b6020820152612d178460408501612c46565b60408201529392505050565b5f82612d3d57634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761085c5761085c61280f565b8035602083101561085c575f19602084900360031b1b1692915050565b6001600160c01b03198135818116916008851015612cb65760089490940360031b84901b1690921692915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c8201525f8251612de281602c85016020870161209e565b91909101602c0195945050505050565b8082018082111561085c5761085c61280f565b8481526001600160401b0360c01b8460c01b1660208201528260288201525f8251612e3781604885016020870161209e565b9190910160480195945050505050565b5f60208284031215612e57575f80fd5b8151610a0b816120fd565b5f82516126a381846020870161209e56fea2646970667358221220a61ac0b7013eb07a52cdd09239821254a1295fe3e9772c13932604f8da1899f764736f6c63430008140033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000001a44076050125825900e736c501f859c50fe728c000000000000000000000000a90ffa2a35319fe802e7fc76c856ca4de5c2e8be000000000000000000000000000000000000000000000000000000000000000f4c61796572205a65726f2054455354000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066c7a544553540000000000000000000000000000000000000000000000000000