6080604052600c80546001600160a01b031990811673fb5aceff3117ac013a387d383fd1643d573bd5b417909155600d805490911673d5027b602b50f18ee2a5d95dd141ee7bde5aa4761790556016805461ffff19166001179055606f601755601880546001600160601b0319166103e8179055670138a388a43c000060195566ea7aa67b2d0000601a5566c3663566a58000601b55669c51c4521e0000601c55348015620000ad57600080fd5b50733cc6cdda760b79bafa08df41ecfa224f810dceb660016040518060400160405280600e81526020016d4372656174696f6e42616269657360901b8152506040518060400160405280600e81526020016d4352454154494f4e42414249455360901b81525081600290816200012491906200045d565b5060036200013382826200045d565b506000805550506daaeb6d7670e522a718067333cd4e3b156200027f578015620001cd57604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b158015620001ae57600080fd5b505af1158015620001c3573d6000803e3d6000fd5b505050506200027f565b6001600160a01b038216156200021e5760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af29039060440162000193565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401600060405180830381600087803b1580156200026557600080fd5b505af11580156200027a573d6000803e3d6000fd5b505050505b506200028d905033620002df565b60016009819055336000908152600f60205260409020805460ff1916909117905542601255620002bf60058062000331565b620002cc600a8062000331565b620002d9600f8062000331565b62000529565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6008546001600160a01b03163314620003905760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b600091825260146020908152604080842092909255601590529020805460ff19166001179055565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620003e357607f821691505b6020821081036200040457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200045857600081815260208120601f850160051c81016020861015620004335750805b601f850160051c820191505b8181101562000454578281556001016200043f565b5050505b505050565b81516001600160401b03811115620004795762000479620003b8565b62000491816200048a8454620003ce565b846200040a565b602080601f831160018114620004c95760008415620004b05750858301515b600019600386901b1c1916600185901b17855562000454565b600085815260208120601f198616915b82811015620004fa57888601518255948401946001909101908401620004d9565b5085821015620005195787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b612f0880620005396000396000f3fe6080604052600436106102ff5760003560e01c80638da5cb5b11610190578063b9e35574116100dc578063e775920c11610095578063f1b0aa151161006f578063f1b0aa15146108d7578063f2fde38b14610904578063f765417614610924578063fd5baa881461094457600080fd5b8063e775920c14610877578063e985e9c514610897578063f0ee9b9e146108b757600080fd5b8063b9e35574146107b4578063bb30ac49146107c7578063c4c6be75146107e7578063c7d0db0414610817578063c87b56dd14610837578063e5ad0b2b1461085757600080fd5b8063a44acf1e11610149578063aa98e0c611610123578063aa98e0c614610748578063aab4ece51461075e578063abb1dc441461077e578063b88d4fde146107a157600080fd5b8063a44acf1e146106db578063a79c00e314610708578063a91657b71461072857600080fd5b80638da5cb5b1461063f578063931688cb1461065d578063931e2e491461067d57806395d89b4114610693578063a0712d68146106a8578063a22cb465146106bb57600080fd5b806353df5c7c1161024f57806370a08231116102085780637e4831d3116101e25780637e4831d3146105c557806383a076be146105df578063847e3d0d146105ff578063856e05041461061f57600080fd5b806370a0823114610570578063715018a6146105905780637a7aa287146105a557600080fd5b806353df5c7c146104c75780635d148e5c146104dc5780636352211e146104fb57806364c1caf81461051b57806369b2f16e1461053b5780636c0360eb1461055b57600080fd5b806323b872dd116102bc57806341f434341161029657806341f434341461045257806342842e0e146104745780634783f0ef146104875780635273ca15146104a757600080fd5b806323b872dd146103eb5780632a55205a146103fe5780633ccfd60b1461043d57600080fd5b806301ffc9a71461030457806302acd0881461033957806306fdde031461035b578063081812fc1461037d578063095ea7b3146103b557806318160ddd146103c8575b600080fd5b34801561031057600080fd5b5061032461031f366004612639565b610964565b60405190151581526020015b60405180910390f35b34801561034557600080fd5b50610359610354366004612680565b610984565b005b34801561036757600080fd5b506103706109e2565b6040516103309190612707565b34801561038957600080fd5b5061039d61039836600461271a565b610a74565b6040516001600160a01b039091168152602001610330565b6103596103c3366004612733565b610ab8565b3480156103d457600080fd5b50600154600054035b604051908152602001610330565b6103596103f936600461275d565b610ad1565b34801561040a57600080fd5b5061041e610419366004612799565b610afc565b604080516001600160a01b039093168352602083019190915201610330565b34801561044957600080fd5b50610359610ba8565b34801561045e57600080fd5b5061039d6daaeb6d7670e522a718067333cd4e81565b61035961048236600461275d565b610cbb565b34801561049357600080fd5b506103596104a236600461271a565b610ce0565b3480156104b357600080fd5b506103246104c23660046127bb565b610d0f565b3480156104d357600080fd5b50610359610d8e565b3480156104e857600080fd5b5060165461032490610100900460ff1681565b34801561050757600080fd5b5061039d61051636600461271a565b610dc9565b34801561052757600080fd5b50600c5461039d906001600160a01b031681565b34801561054757600080fd5b50600d5461039d906001600160a01b031681565b34801561056757600080fd5b50610370610dd4565b34801561057c57600080fd5b506103dd61058b3660046127bb565b610e62565b34801561059c57600080fd5b50610359610eb1565b3480156105b157600080fd5b506103596105c036600461271a565b610ee7565b3480156105d157600080fd5b506016546103249060ff1681565b3480156105eb57600080fd5b506103596105fa3660046127d6565b610f16565b34801561060b57600080fd5b5061032461061a3660046127bb565b611021565b34801561062b57600080fd5b5061035961063a3660046127bb565b61105a565b34801561064b57600080fd5b506008546001600160a01b031661039d565b34801561066957600080fd5b50610359610678366004612802565b6110b8565b34801561068957600080fd5b506103dd60125481565b34801561069f57600080fd5b50610370611139565b6103596106b636600461271a565b611148565b3480156106c757600080fd5b506103596106d6366004612680565b611315565b3480156106e757600080fd5b506103dd6106f636600461271a565b60146020526000908152604090205481565b34801561071457600080fd5b506103596107233660046127bb565b611329565b34801561073457600080fd5b5061035961074336600461271a565b611375565b34801561075457600080fd5b506103dd60105481565b34801561076a57600080fd5b5061035961077936600461271a565b6113a4565b34801561078a57600080fd5b506107936113d3565b604051610330929190612874565b6103596107af36600461290e565b611509565b6103596107c23660046129ea565b61152f565b3480156107d357600080fd5b506103596107e2366004612799565b6117b5565b3480156107f357600080fd5b5061032461080236600461271a565b60156020526000908152604090205460ff1681565b34801561082357600080fd5b50610359610832366004612a69565b611807565b34801561084357600080fd5b5061037061085236600461271a565b611850565b34801561086357600080fd5b50610359610872366004612a86565b6118f1565b34801561088357600080fd5b506103596108923660046127bb565b6119e4565b3480156108a357600080fd5b506103246108b2366004612aaf565b611a30565b3480156108c357600080fd5b506103dd6108d2366004612ad9565b611a5e565b3480156108e357600080fd5b506103dd6108f236600461271a565b60136020526000908152604090205481565b34801561091057600080fd5b5061035961091f3660046127bb565b611b33565b34801561093057600080fd5b5060115461039d906001600160a01b031681565b34801561095057600080fd5b5061035961095f36600461271a565b611bcb565b600061096f82611bfa565b8061097e575061097e82611c48565b92915050565b6008546001600160a01b031633146109b75760405162461bcd60e51b81526004016109ae90612b19565b60405180910390fd5b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6060600280546109f190612b4e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1d90612b4e565b8015610a6a5780601f10610a3f57610100808354040283529160200191610a6a565b820191906000526020600020905b815481529060010190602001808311610a4d57829003601f168201915b5050505050905090565b6000610a7f82611c7d565b610a9c576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b81610ac281611ca4565b610acc8383611d5d565b505050565b826001600160a01b0381163314610aeb57610aeb33611ca4565b610af6848484611dfd565b50505050565b6000828152600b602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610b71575060408051808201909152600a546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610b90906001600160601b031687612b9e565b610b9a9190612bcb565b915196919550909350505050565b6008546001600160a01b03163314610bd25760405162461bcd60e51b81526004016109ae90612b19565b6011546001600160a01b0316610c225760405162461bcd60e51b81526020600482015260156024820152741cdc1b1a5d081859191c995cdcc81b9bdd081cd95d605a1b60448201526064016109ae565b6011546040516000916001600160a01b03169047908381818185875af1925050503d8060008114610c6f576040519150601f19603f3d011682016040523d82523d6000602084013e610c74565b606091505b5050905080610cb85760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b60448201526064016109ae565b50565b826001600160a01b0381163314610cd557610cd533611ca4565b610af6848484611f96565b6008546001600160a01b03163314610d0a5760405162461bcd60e51b81526004016109ae90612b19565b601055565b600d546040516370a0823160e01b81526001600160a01b03838116600483015260009216908290819083906370a08231906024015b602060405180830381865afa158015610d61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d859190612bdf565b11949350505050565b6008546001600160a01b03163314610db85760405162461bcd60e51b81526004016109ae90612b19565b6016805461ff001916610100179055565b600061097e82611fb1565b600e8054610de190612b4e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e0d90612b4e565b8015610e5a5780601f10610e2f57610100808354040283529160200191610e5a565b820191906000526020600020905b815481529060010190602001808311610e3d57829003601f168201915b505050505081565b60006001600160a01b038216610e8b576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b6008546001600160a01b03163314610edb5760405162461bcd60e51b81526004016109ae90612b19565b610ee5600061201f565b565b6008546001600160a01b03163314610f115760405162461bcd60e51b81526004016109ae90612b19565b601a55565b336000908152600f602052604090205460ff161515600114610f725760405162461bcd60e51b81526020600482015260156024820152741bdb9b1e4819da599d195c9cc818d85b8819da599d605a1b60448201526064016109ae565b60175482610f836001546000540390565b610f8d9190612bf8565b1115610fab5760405162461bcd60e51b81526004016109ae90612c0b565b6000610fba6001546000540390565b90506000600184610fce6001546000540390565b610fd89190612bf8565b610fe29190612c36565b9050610fee8385612071565b815b81811161101a5760008181526013602052604090204290558061101281612c49565b915050610ff0565b5050505050565b600c546040516370a0823160e01b81526001600160a01b03838116600483015260009216908290819083906370a0823190602401610d44565b6008546001600160a01b031633146110845760405162461bcd60e51b81526004016109ae90612b19565b601180546001600160a01b0319166001600160a01b038316908117909155601854610cb891906001600160601b031661208f565b6008546001600160a01b031633146110e25760405162461bcd60e51b81526004016109ae90612b19565b601654610100900460ff161561112c5760405162461bcd60e51b815260206004820152600f60248201526e18985cd9481d5c9a481b1bd8dad959608a1b60448201526064016109ae565b600e610acc828483612ca8565b6060600380546109f190612b4e565b60026009540361119a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109ae565b60026009553233146111ee5760405162461bcd60e51b815260206004820152601f60248201527f7468652063616c6c657220697320616e6f7468657220636f6e74726163742e0060448201526064016109ae565b60165460ff16156112325760405162461bcd60e51b815260206004820152600e60248201526d1b5a5b9d1a5b99c81c185d5cd95960921b60448201526064016109ae565b600061124082336000611a5e565b90508034146112615760405162461bcd60e51b81526004016109ae90612d68565b601754826112726001546000540390565b61127c9190612bf8565b111561129a5760405162461bcd60e51b81526004016109ae90612c0b565b60006112a96001546000540390565b905060006001846112bd6001546000540390565b6112c79190612bf8565b6112d19190612c36565b90506112dd3385612071565b815b8181116113095760008181526013602052604090204290558061130181612c49565b9150506112df565b50506001600955505050565b8161131f81611ca4565b610acc838361218c565b6008546001600160a01b031633146113535760405162461bcd60e51b81526004016109ae90612b19565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6008546001600160a01b0316331461139f5760405162461bcd60e51b81526004016109ae90612b19565b601c55565b6008546001600160a01b031633146113ce5760405162461bcd60e51b81526004016109ae90612b19565b601b55565b60608060006113e56001546000540390565b67ffffffffffffffff8111156113fd576113fd6128f8565b604051908082528060200260200182016040528015611426578160200160208202803683370190505b50905060006114386001546000540390565b67ffffffffffffffff811115611450576114506128f8565b604051908082528060200260200182016040528015611479578160200160208202803683370190505b50905060005b600154600054038110156114ff5761149681610dc9565b8382815181106114a8576114a8612daa565b6001600160a01b0390921660209283029190910182015260008281526013909152604090205482518390839081106114e2576114e2612daa565b6020908102919091010152806114f781612c49565b91505061147f565b5090939092509050565b836001600160a01b03811633146115235761152333611ca4565b61101a858585856121f8565b6002600954036115815760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109ae565b60026009553233146115d55760405162461bcd60e51b815260206004820152601f60248201527f7468652063616c6c657220697320616e6f7468657220636f6e74726163742e0060448201526064016109ae565b60165460ff16156116195760405162461bcd60e51b815260206004820152600e60248201526d1b5a5b9d1a5b99c81c185d5cd95960921b60448201526064016109ae565b6040516bffffffffffffffffffffffff193360601b16602082015260009060340160405160208183030381529060405280519060200120905061169383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050601054915084905061223c565b6116cf5760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b210383937b7b360991b60448201526064016109ae565b60006116dd85336001611a5e565b90508034146116fe5760405162461bcd60e51b81526004016109ae90612d68565b6017548561170f6001546000540390565b6117199190612bf8565b11156117375760405162461bcd60e51b81526004016109ae90612c0b565b60006117466001546000540390565b9050600060018761175a6001546000540390565b6117649190612bf8565b61176e9190612c36565b905061177a3388612071565b815b8181116117a65760008181526013602052604090204290558061179e81612c49565b91505061177c565b50506001600955505050505050565b6008546001600160a01b031633146117df5760405162461bcd60e51b81526004016109ae90612b19565b600091825260146020908152604080842092909255601590529020805460ff19166001179055565b6008546001600160a01b031633146118315760405162461bcd60e51b81526004016109ae90612b19565b6016805460ff191682151590811790915560ff16610cb8574260125550565b606061185b82611c7d565b6118bf5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b60648201526084016109ae565b600e6118ca83612252565b6040516020016118db929190612dc0565b6040516020818303038152906040529050919050565b6008546001600160a01b0316331461191b5760405162461bcd60e51b81526004016109ae90612b19565b6011546001600160a01b03166119a95760405162461bcd60e51b815260206004820152604760248201527f73706c69742061646472657373206e6f74207365742c20706c6561736520736560448201527f742073706c69742061646472657373206265666f7265207570646174696e6720606482015266726f79616c747960c81b608482015260a4016109ae565b601880546bffffffffffffffffffffffff19166001600160601b038316908117909155601154610cb8916001600160a01b039091169061208f565b6008546001600160a01b03163314611a0e5760405162461bcd60e51b81526004016109ae90612b19565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b600080611a6a84611021565b90506000611a7785610d0f565b601954909150828015611a8e57508180611a8e5750845b15611a9c5750601c54611abe565b8215611aab5750601b54611abe565b8180611ab45750845b15611abe5750601a545b6000611aca8883612b9e565b60008981526015602052604090205490915060ff1615611b285760008881526014602052604081205490611aff606483612bcb565b8a601954611b0d9190612b9e565b611b179190612b9e565b9050611b238184612c36565b925050505b979650505050505050565b6008546001600160a01b03163314611b5d5760405162461bcd60e51b81526004016109ae90612b19565b6001600160a01b038116611bc25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109ae565b610cb88161201f565b6008546001600160a01b03163314611bf55760405162461bcd60e51b81526004016109ae90612b19565b601955565b60006301ffc9a760e01b6001600160e01b031983161480611c2b57506380ac58cd60e01b6001600160e01b03198316145b8061097e5750506001600160e01b031916635b5e139f60e01b1490565b60006001600160e01b0319821663152a902d60e11b148061097e57506301ffc9a760e01b6001600160e01b031983161461097e565b600080548210801561097e575050600090815260046020526040902054600160e01b161590565b6daaeb6d7670e522a718067333cd4e3b15610cb857604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015611d11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d359190612e47565b610cb857604051633b79c77360e21b81526001600160a01b03821660048201526024016109ae565b6000611d6882610dc9565b9050336001600160a01b03821614611da157611d848133611a30565b611da1576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000611e0882611fb1565b9050836001600160a01b0316816001600160a01b031614611e3b5760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b03881690911417611e8857611e6b8633611a30565b611e8857604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038516611eaf57604051633a954ecd60e21b815260040160405180910390fd5b8015611eba57600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003611f4c57600184016000818152600460205260408120549003611f4a576000548114611f4a5760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b610acc83838360405180602001604052806000815250611509565b6000816000548110156120065760008181526004602052604081205490600160e01b82169003612004575b80600003611ffd575060001901600081815260046020526040902054611fdc565b9392505050565b505b604051636f96cda160e11b815260040160405180910390fd5b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61208b82826040518060200160405280600081525061235b565b5050565b6127106001600160601b03821611156120fd5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084016109ae565b6001600160a01b0382166121535760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016109ae565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600a55565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b612203848484610ad1565b6001600160a01b0383163b15610af65761221f848484846123c1565b610af6576040516368d2bf6b60e11b815260040160405180910390fd5b60008261224985846124ac565b14949350505050565b6060816000036122795750506040805180820190915260018152600360fc1b602082015290565b8160005b81156122a3578061228d81612c49565b915061229c9050600a83612bcb565b915061227d565b60008167ffffffffffffffff8111156122be576122be6128f8565b6040519080825280601f01601f1916602001820160405280156122e8576020820181803683370190505b5090505b8415612353576122fd600183612c36565b915061230a600a86612e64565b612315906030612bf8565b60f81b81838151811061232a5761232a612daa565b60200101906001600160f81b031916908160001a90535061234c600a86612bcb565b94506122ec565b949350505050565b61236583836124f9565b6001600160a01b0383163b15610acc576000548281035b61238f60008683806001019450866123c1565b6123ac576040516368d2bf6b60e11b815260040160405180910390fd5b81811061237c57816000541461101a57600080fd5b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906123f6903390899088908890600401612e78565b6020604051808303816000875af1925050508015612431575060408051601f3d908101601f1916820190925261242e91810190612eb5565b60015b61248f573d80801561245f576040519150601f19603f3d011682016040523d82523d6000602084013e612464565b606091505b508051600003612487576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b600081815b84518110156124f1576124dd828683815181106124d0576124d0612daa565b60200260200101516125f7565b9150806124e981612c49565b9150506124b1565b509392505050565b600080549082900361251e5760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146125cd57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101612595565b50816000036125ee57604051622e076360e81b815260040160405180910390fd5b60005550505050565b6000818310612613576000828152602084905260409020611ffd565b5060009182526020526040902090565b6001600160e01b031981168114610cb857600080fd5b60006020828403121561264b57600080fd5b8135611ffd81612623565b80356001600160a01b038116811461266d57600080fd5b919050565b8015158114610cb857600080fd5b6000806040838503121561269357600080fd5b61269c83612656565b915060208301356126ac81612672565b809150509250929050565b60005b838110156126d25781810151838201526020016126ba565b50506000910152565b600081518084526126f38160208601602086016126b7565b601f01601f19169290920160200192915050565b602081526000611ffd60208301846126db565b60006020828403121561272c57600080fd5b5035919050565b6000806040838503121561274657600080fd5b61274f83612656565b946020939093013593505050565b60008060006060848603121561277257600080fd5b61277b84612656565b925061278960208501612656565b9150604084013590509250925092565b600080604083850312156127ac57600080fd5b50508035926020909101359150565b6000602082840312156127cd57600080fd5b611ffd82612656565b600080604083850312156127e957600080fd5b823591506127f960208401612656565b90509250929050565b6000806020838503121561281557600080fd5b823567ffffffffffffffff8082111561282d57600080fd5b818501915085601f83011261284157600080fd5b81358181111561285057600080fd5b86602082850101111561286257600080fd5b60209290920196919550909350505050565b604080825283519082018190526000906020906060840190828701845b828110156128b65781516001600160a01b031684529284019290840190600101612891565b5050508381038285015284518082528583019183019060005b818110156128eb578351835292840192918401916001016128cf565b5090979650505050505050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561292457600080fd5b61292d85612656565b935061293b60208601612656565b925060408501359150606085013567ffffffffffffffff8082111561295f57600080fd5b818701915087601f83011261297357600080fd5b813581811115612985576129856128f8565b604051601f8201601f19908116603f011681019083821181831017156129ad576129ad6128f8565b816040528281528a60208487010111156129c657600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806000604084860312156129ff57600080fd5b83359250602084013567ffffffffffffffff80821115612a1e57600080fd5b818601915086601f830112612a3257600080fd5b813581811115612a4157600080fd5b8760208260051b8501011115612a5657600080fd5b6020830194508093505050509250925092565b600060208284031215612a7b57600080fd5b8135611ffd81612672565b600060208284031215612a9857600080fd5b81356001600160601b0381168114611ffd57600080fd5b60008060408385031215612ac257600080fd5b612acb83612656565b91506127f960208401612656565b600080600060608486031215612aee57600080fd5b83359250612afe60208501612656565b91506040840135612b0e81612672565b809150509250925092565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680612b6257607f821691505b602082108103612b8257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761097e5761097e612b88565b634e487b7160e01b600052601260045260246000fd5b600082612bda57612bda612bb5565b500490565b600060208284031215612bf157600080fd5b5051919050565b8082018082111561097e5761097e612b88565b6020808252601190820152706e6f7420656e6f75676820737570706c7960781b604082015260600190565b8181038181111561097e5761097e612b88565b600060018201612c5b57612c5b612b88565b5060010190565b601f821115610acc57600081815260208120601f850160051c81016020861015612c895750805b601f850160051c820191505b81811015611f8e57828155600101612c95565b67ffffffffffffffff831115612cc057612cc06128f8565b612cd483612cce8354612b4e565b83612c62565b6000601f841160018114612d085760008515612cf05750838201355b600019600387901b1c1916600186901b17835561101a565b600083815260209020601f19861690835b82811015612d395786850135825560209485019460019092019101612d19565b5086821015612d565760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60208082526022908201527f646964206e6f742073656e6420636f727265637420616d6f756e74206f6620656040820152610e8d60f31b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000808454612dce81612b4e565b60018281168015612de65760018114612dfb57612e2a565b60ff1984168752821515830287019450612e2a565b8860005260208060002060005b85811015612e215781548a820152908401908201612e08565b50505082870194505b505050508351612e3e8183602088016126b7565b01949350505050565b600060208284031215612e5957600080fd5b8151611ffd81612672565b600082612e7357612e73612bb5565b500690565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612eab908301846126db565b9695505050505050565b600060208284031215612ec757600080fd5b8151611ffd8161262356fea264697066735822122025e8170a00c74ddfbb751b2050ab79879b4bde2c3a51ec158e6dff44817a78e064736f6c63430008110033