60a060405230608052348015601357600080fd5b50608051612f4d61003d600039600081816114660152818161148f01526115d10152612f4d6000f3fe6080604052600436106101b65760003560e01c80637a9e5e4b116100ec578063ad3cb1cc1161008a578063cfc6fefd11610064578063cfc6fefd1461051f578063e8a3d4851461053f578063e985e9c514610554578063f242432a1461057457600080fd5b8063ad3cb1cc146104a1578063b3f69f8d146104d2578063bf7e214f146104f257600080fd5b80638853ed2e116100c65780638853ed2e146104135780638fb3603714610433578063938e3d7b14610461578063a22cb4651461048157600080fd5b80637a9e5e4b146103be5780637e2acfa3146103de5780638456cb59146103fe57600080fd5b80634f1ef286116101595780635c975abb116101335780635c975abb14610327578063613d25bb1461035e57806361be40141461037e5780637269eb441461039e57600080fd5b80634f1ef286146102da5780635023cb19146102ed57806352d1902d1461031257600080fd5b80630e89341c116101955780630e89341c146102405780632eb2c2d61461026d57806346b4a4911461028d5780634e1273f4146102ad57600080fd5b8062fdd58e146101bb57806301ffc9a7146101ee57806302fe53051461021e575b600080fd5b3480156101c757600080fd5b506101db6101d63660046122fd565b610594565b6040519081526020015b60405180910390f35b3480156101fa57600080fd5b5061020e61020936600461233d565b6105cb565b60405190151581526020016101e5565b34801561022a57600080fd5b5061023e610239366004612416565b61061b565b005b34801561024c57600080fd5b5061026061025b366004612452565b610634565b6040516101e591906124bb565b34801561027957600080fd5b5061023e61028836600461255e565b6106f9565b34801561029957600080fd5b5061023e6102a8366004612611565b610765565b3480156102b957600080fd5b506102cd6102c836600461262c565b61078f565b6040516101e5919061272f565b61023e6102e8366004612742565b61085b565b3480156102f957600080fd5b5060045460405163ffffffff90911681526020016101e5565b34801561031e57600080fd5b506101db61087a565b34801561033357600080fd5b507fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff1661020e565b34801561036a57600080fd5b5061023e610379366004612785565b610897565b34801561038a57600080fd5b5061023e610399366004612611565b6109f1565b3480156103aa57600080fd5b5061023e6103b936600461281f565b610a1e565b3480156103ca57600080fd5b5061023e6103d9366004612611565b610a43565b3480156103ea57600080fd5b5061023e6103f9366004612611565b610ac6565b34801561040a57600080fd5b5061023e610af0565b34801561041f57600080fd5b5061023e61042e3660046128c8565b610b03565b34801561043f57600080fd5b50610448610ddc565b6040516001600160e01b031990911681526020016101e5565b34801561046d57600080fd5b5061023e61047c366004612416565b610e15565b34801561048d57600080fd5b5061023e61049c366004612963565b610e57565b3480156104ad57600080fd5b50610260604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156104de57600080fd5b5061023e6104ed366004612611565b610e62565b3480156104fe57600080fd5b50610507610e8f565b6040516001600160a01b0390911681526020016101e5565b34801561052b57600080fd5b5061023e61053a36600461299a565b610eab565b34801561054b57600080fd5b50610260611179565b34801561056057600080fd5b5061020e61056f366004612a02565b61120b565b34801561058057600080fd5b5061023e61058f366004612a35565b611258565b6000818152600080516020612ef8833981519152602090815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b14806105fc57506001600160e01b031982166303a24d0760e21b145b806105c557506301ffc9a760e01b6001600160e01b03198316146105c5565b610628335b6000366112b7565b610631816113b5565b50565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45028054606091600080516020612ef88339815191529161067390612a8d565b80601f016020809104026020016040519081016040528092919081815260200182805461069f90612a8d565b80156106ec5780601f106106c1576101008083540402835291602001916106ec565b820191906000526020600020905b8154815290600101906020018083116106cf57829003601f168201915b5050505050915050919050565b336001600160a01b038616811480159061071a5750610718868261120b565b155b156107505760405163711bec9160e11b81526001600160a01b038083166004830152871660248201526044015b60405180910390fd5b61075d86868686866113f4565b505050505050565b61076e33610620565b6001600160a01b03166000908152600260205260409020805460ff19169055565b606081518351146107c05781518351604051635b05999160e01b815260048101929092526024820152604401610747565b600083516001600160401b038111156107db576107db61235a565b604051908082528060200260200182016040528015610804578160200160208202803683370190505b50905060005b84518110156108535760208082028601015161082e90602080840287010151610594565b82828151811061084057610840612ac7565b602090810291909101015260010161080a565b509392505050565b61086361145b565b61086c82611500565b6108768282611509565b5050565b60006108846115c6565b50600080516020612ed883398151915290565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156108dc5750825b90506000826001600160401b031660011480156108f85750303b155b905081158015610906575080155b156109245760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561094e57845460ff60401b1916600160401b1785555b6109578761160f565b61096089611620565b6004805463ffffffff19166064179055600561097c8982612b24565b506001600160a01b0386166000908152600260205260409020805460ff1916600117905583156109e657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b6109fa33610620565b6001600160a01b03166000908152600260205260409020805460ff19166001179055565b610a2733610620565b6004805463ffffffff191663ffffffff92909216919091179055565b33610a4c610e8f565b6001600160a01b0316816001600160a01b031614610a875760405162d1953b60e31b81526001600160a01b0382166004820152602401610747565b816001600160a01b03163b600003610abd576040516361798f2f60e11b81526001600160a01b0383166004820152602401610747565b61087682611631565b610acf33610620565b6001600160a01b03166000908152600360205260409020805460ff19169055565b610af933610620565b610b01611692565b565b60045463ffffffff16841115610b505760405162461bcd60e51b8152602060048201526012602482015271426174636820697320746f6f206c6172676560701b6044820152606401610747565b60008381526020819052604090205460ff1615610ba45760405162461bcd60e51b8152602060048201526012602482015271139bdb98d948185b1c9958591e481d5cd95960721b6044820152606401610747565b600086868686604051602001610bbd9493929190612c0b565b6040516020818303038152906040528051906020012090506000610c0e827f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b90506000610c528286868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061170692505050565b6001600160a01b03811660009081526002602052604090205490915060ff16610cb15760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b6044820152606401610747565b6000868152602081905260408120805460ff19166001179055876001600160401b03811115610ce257610ce261235a565b604051908082528060200260200182016040528015610d0b578160200160208202803683370190505b50905060005b88811015610d40576001828281518110610d2d57610d2d612ac7565b6020908102919091010152600101610d11565b50610d8e8a8a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250604080516020810190915290815287935091506117309050565b604080516001600160a01b038c168152602081018990527f60a2a3e3fb4edb2c0afc2f0be3687d9ee1913a5bccc82d27cb9380d5ede04951910160405180910390a150505050505050505050565b600080516020612eb8833981519152805460009190600160a01b900460ff16610e06576000610e0f565b638fb3603760e01b5b91505090565b610e1e33610620565b6005610e2a8282612b24565b506040517fa5d4097edda6d87cb9329af83fb3712ef77eeb13738ffe43cc35a4ce305ad96290600090a150565b61087633838361176e565b610e6b33610620565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b600080516020612eb8833981519152546001600160a01b031690565b83421115610ef35760405162461bcd60e51b815260206004820152601560248201527414da59db985d1d5c99481a185cc8195e1c1a5c9959605a1b6044820152606401610747565b60008381526001602052604090205460ff1615610f475760405162461bcd60e51b8152602060048201526012602482015271139bdb98d948185b1c9958591e481d5cd95960721b6044820152606401610747565b6040513390600090610f659083908a908a908a908a90602001612c3f565b6040516020818303038152906040528051906020012090506000610fb6827f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b90506000610ffa8287878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061170692505050565b6001600160a01b03811660009081526003602052604090205490915060ff166110595760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b6044820152606401610747565b60008781526001602081905260408220805460ff19169091179055896001600160401b0381111561108c5761108c61235a565b6040519080825280602002602001820160405280156110b5578160200160208202803683370190505b50905060005b8a8110156110ea5760018282815181106110d7576110d7612ac7565b60209081029190910101526001016110bb565b5061112a858c8c80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250869250611816915050565b604080516001600160a01b0387168152602081018a90527fd15596bc93a171202c57d1c24b55dd1533cbdce63a056b2c38e0e9e48b04e5d9910160405180910390a15050505050505050505050565b60606005805461118890612a8d565b80601f01602080910402602001604051908101604052809291908181526020018280546111b490612a8d565b80156112015780601f106111d657610100808354040283529160200191611201565b820191906000526020600020905b8154815290600101906020018083116111e457829003601f168201915b5050505050905090565b6001600160a01b0391821660009081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b336001600160a01b03861681148015906112795750611277868261120b565b155b156112aa5760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610747565b61075d868686868661185c565b600080516020612eb88339815191526000806112f26112d4610e8f565b87306112e4600460008a8c612c78565b6112ed91612ca2565b6118ea565b915091508161075d5763ffffffff81161561139257825460ff60a01b1916600160a01b178355611320610e8f565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161134f93929190612cda565b600060405180830381600087803b15801561136957600080fd5b505af115801561137d573d6000803e3d6000fd5b5050845460ff60a01b191685555061075d9050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610747565b600080516020612ef88339815191527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45026113ef8382612b24565b505050565b6001600160a01b03841661141e57604051632bfa23e760e11b815260006004820152602401610747565b6001600160a01b03851661144757604051626a0d4560e21b815260006004820152602401610747565b61145485858585856119f6565b5050505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806114e257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114d6600080516020612ed8833981519152546001600160a01b031690565b6001600160a01b031614155b15610b015760405163703e46dd60e11b815260040160405180910390fd5b61063133610620565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611563575060408051601f3d908101601f1916820190925261156091810190612d1a565b60015b61158b57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610747565b600080516020612ed883398151915281146115bc57604051632a87526960e21b815260048101829052602401610747565b6113ef8383611a49565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b015760405163703e46dd60e11b815260040160405180910390fd5b611617611a9f565b61063181611ae8565b611628611a9f565b61063181611af0565b600080516020612eb883398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b61169a611b01565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258336040516001600160a01b03909116815260200160405180910390a150565b6000806000806117168686611b44565b9250925092506117268282611b91565b5090949350505050565b6001600160a01b03841661175a57604051632bfa23e760e11b815260006004820152602401610747565b6117686000858585856119f6565b50505050565b600080516020612ef88339815191526001600160a01b0383166117a65760405162ced3e160e81b815260006004820152602401610747565b6001600160a01b038481166000818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b03831661183f57604051626a0d4560e21b815260006004820152602401610747565b6113ef8360008484604051806020016040528060008152506119f6565b6001600160a01b03841661188657604051632bfa23e760e11b815260006004820152602401610747565b6001600160a01b0385166118af57604051626a0d4560e21b815260006004820152602401610747565b604080516001808252602082018690528183019081526060820185905260808201909252906118e187878484876119f6565b50505050505050565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516119599190612d33565b600060405180830381855afa9150503d8060008114611994576040519150601f19603f3d011682016040523d82523d6000602084013e611999565b606091505b509150915081156119eb5760408151106119cb57808060200190518101906119c19190612d4f565b90945092506119eb565b60208151106119eb57808060200190518101906119e89190612d7e565b93505b505094509492505050565b611a0285858585611c4a565b6001600160a01b038416156114545782513390600103611a3b5760208481015190840151611a34838989858589611c5e565b505061075d565b61075d818787878787611d82565b611a5282611e6b565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611a97576113ef8282611ed0565b610876611f46565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610b0157604051631afcd79f60e31b815260040160405180910390fd5b610628611a9f565b611af8611a9f565b61063181611631565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff1615610b015760405163d93c066560e01b815260040160405180910390fd5b60008060008351604103611b7e5760208401516040850151606086015160001a611b7088828585611f65565b955095509550505050611b8a565b50508151600091506002905b9250925092565b6000826003811115611ba557611ba5612d9b565b03611bae575050565b6001826003811115611bc257611bc2612d9b565b03611be05760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115611bf457611bf4612d9b565b03611c155760405163fce698f760e01b815260048101829052602401610747565b6003826003811115611c2957611c29612d9b565b03610876576040516335e2f38360e21b815260048101829052602401610747565b611c52611b01565b61176884848484612034565b6001600160a01b0384163b1561075d5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190611ca29089908990889088908890600401612db1565b6020604051808303816000875af1925050508015611cdd575060408051601f3d908101601f19168201909252611cda91810190612df6565b60015b611d46573d808015611d0b576040519150601f19603f3d011682016040523d82523d6000602084013e611d10565b606091505b508051600003611d3e57604051632bfa23e760e11b81526001600160a01b0386166004820152602401610747565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b146118e157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610747565b6001600160a01b0384163b1561075d5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611dc69089908990889088908890600401612e13565b6020604051808303816000875af1925050508015611e01575060408051601f3d908101601f19168201909252611dfe91810190612df6565b60015b611e2f573d808015611d0b576040519150601f19603f3d011682016040523d82523d6000602084013e611d10565b6001600160e01b0319811663bc197c8160e01b146118e157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610747565b806001600160a01b03163b600003611ea157604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610747565b600080516020612ed883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611eed9190612d33565b600060405180830381855af49150503d8060008114611f28576040519150601f19603f3d011682016040523d82523d6000602084013e611f2d565b606091505b5091509150611f3d858383612259565b95945050505050565b3415610b015760405163b398979f60e01b815260040160405180910390fd5b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115611fa0575060009150600390508261202a565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611ff4573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166120205750600092506001915082905061202a565b9250600091508190505b9450945094915050565b80518251600080516020612ef883398151915291146120735782518251604051635b05999160e01b815260048101929092526024820152604401610747565b3360005b8451811015612179576020818102868101820151908601909101516001600160a01b0389161561212a576000828152602086815260408083206001600160a01b038d16845290915290205481811015612103576040516303dee4c560e01b81526001600160a01b038b166004820152602481018290526044810183905260648101849052608401610747565b6000838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b0388161561216f576000828152602086815260408083206001600160a01b038c16845290915281208054839290612169908490612e71565b90915550505b5050600101612077565b5083516001036121fa5760208401516000906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516121eb929190918252602082015260400190565b60405180910390a4505061075d565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051612249929190612e92565b60405180910390a4505050505050565b60608261226e57612269826122b8565b6122b1565b815115801561228557506001600160a01b0384163b155b156122ae57604051639996b31560e01b81526001600160a01b0385166004820152602401610747565b50805b9392505050565b8051156122c85780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146122f857600080fd5b919050565b6000806040838503121561231057600080fd5b612319836122e1565b946020939093013593505050565b6001600160e01b03198116811461063157600080fd5b60006020828403121561234f57600080fd5b81356122b181612327565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156123985761239861235a565b604052919050565b600082601f8301126123b157600080fd5b8135602083016000806001600160401b038411156123d1576123d161235a565b50601f8301601f19166020016123e681612370565b9150508281528583830111156123fb57600080fd5b82826020830137600092810160200192909252509392505050565b60006020828403121561242857600080fd5b81356001600160401b0381111561243e57600080fd5b61244a848285016123a0565b949350505050565b60006020828403121561246457600080fd5b5035919050565b60005b8381101561248657818101518382015260200161246e565b50506000910152565b600081518084526124a781602086016020860161246b565b601f01601f19169290920160200192915050565b6020815260006122b1602083018461248f565b60006001600160401b038211156124e7576124e761235a565b5060051b60200190565b600082601f83011261250257600080fd5b8135612515612510826124ce565b612370565b8082825260208201915060208360051b86010192508583111561253757600080fd5b602085015b8381101561255457803583526020928301920161253c565b5095945050505050565b600080600080600060a0868803121561257657600080fd5b61257f866122e1565b945061258d602087016122e1565b935060408601356001600160401b038111156125a857600080fd5b6125b4888289016124f1565b93505060608601356001600160401b038111156125d057600080fd5b6125dc888289016124f1565b92505060808601356001600160401b038111156125f857600080fd5b612604888289016123a0565b9150509295509295909350565b60006020828403121561262357600080fd5b6122b1826122e1565b6000806040838503121561263f57600080fd5b82356001600160401b0381111561265557600080fd5b8301601f8101851361266657600080fd5b8035612674612510826124ce565b8082825260208201915060208360051b85010192508783111561269657600080fd5b6020840193505b828410156126bf576126ae846122e1565b82526020938401939091019061269d565b945050505060208301356001600160401b038111156126dd57600080fd5b6126e9858286016124f1565b9150509250929050565b600081518084526020840193506020830160005b82811015612725578151865260209586019590910190600101612707565b5093949350505050565b6020815260006122b160208301846126f3565b6000806040838503121561275557600080fd5b61275e836122e1565b915060208301356001600160401b0381111561277957600080fd5b6126e9858286016123a0565b6000806000806080858703121561279b57600080fd5b6127a4856122e1565b935060208501356001600160401b038111156127bf57600080fd5b6127cb878288016123a0565b93505060408501356001600160401b038111156127e757600080fd5b6127f3878288016123a0565b925050612802606086016122e1565b905092959194509250565b63ffffffff8116811461063157600080fd5b60006020828403121561283157600080fd5b81356122b18161280d565b60008083601f84011261284e57600080fd5b5081356001600160401b0381111561286557600080fd5b6020830191508360208260051b850101111561288057600080fd5b9250929050565b60008083601f84011261289957600080fd5b5081356001600160401b038111156128b057600080fd5b60208301915083602082850101111561288057600080fd5b600080600080600080608087890312156128e157600080fd5b6128ea876122e1565b955060208701356001600160401b0381111561290557600080fd5b61291189828a0161283c565b9096509450506040870135925060608701356001600160401b0381111561293757600080fd5b61294389828a01612887565b979a9699509497509295939492505050565b801515811461063157600080fd5b6000806040838503121561297657600080fd5b61297f836122e1565b9150602083013561298f81612955565b809150509250929050565b600080600080600080608087890312156129b357600080fd5b86356001600160401b038111156129c957600080fd5b6129d589828a0161283c565b909750955050602087013593506040870135925060608701356001600160401b0381111561293757600080fd5b60008060408385031215612a1557600080fd5b612a1e836122e1565b9150612a2c602084016122e1565b90509250929050565b600080600080600060a08688031215612a4d57600080fd5b612a56866122e1565b9450612a64602087016122e1565b9350604086013592506060860135915060808601356001600160401b038111156125f857600080fd5b600181811c90821680612aa157607f821691505b602082108103612ac157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b601f8211156113ef57806000526020600020601f840160051c81016020851015612b045750805b601f840160051c820191505b818110156114545760008155600101612b10565b81516001600160401b03811115612b3d57612b3d61235a565b612b5181612b4b8454612a8d565b84612add565b6020601f821160018114612b855760008315612b6d5750848201515b600019600385901b1c1916600184901b178455611454565b600084815260208120601f198516915b82811015612bb55787850151825560209485019460019092019101612b95565b5084821015612bd35786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60006001600160fb1b03831115612bf857600080fd5b8260051b80838637939093019392505050565b6bffffffffffffffffffffffff198560601b1681526000612c30601483018587612be2565b92835250506020019392505050565b6bffffffffffffffffffffffff198660601b1681526000612c64601483018688612be2565b938452505060208201526040019392505050565b60008085851115612c8857600080fd5b83861115612c9557600080fd5b5050820193919092039150565b80356001600160e01b03198116906004841015612cd3576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b600060208284031215612d2c57600080fd5b5051919050565b60008251612d4581846020870161246b565b9190910192915050565b60008060408385031215612d6257600080fd5b8251612d6d81612955565b602084015190925061298f8161280d565b600060208284031215612d9057600080fd5b81516122b181612955565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090612deb9083018461248f565b979650505050505050565b600060208284031215612e0857600080fd5b81516122b181612327565b6001600160a01b0386811682528516602082015260a060408201819052600090612e3f908301866126f3565b8281036060840152612e5181866126f3565b90508281036080840152612e65818561248f565b98975050505050505050565b808201808211156105c557634e487b7160e01b600052601160045260246000fd5b604081526000612ea560408301856126f3565b8281036020840152611f3d81856126f356fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4500a2646970667358221220cf17c15b27f71924df003d9656a7e6d3f946c6d4a553c10e959e9ec20dc008e364736f6c634300081a0033