60806040523480156200001157600080fd5b50604051806060016040528060228152602001620031ed60229139620000378162000079565b50620000456000336200008b565b50620000727f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336200008b565b50620002b1565b6002620000878282620001e5565b5050565b60008281526003602090815260408083206001600160a01b038516845290915281205460ff16620001345760008381526003602090815260408083206001600160a01b03861684529091529020805460ff19166001179055620000eb3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000138565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200016957607f821691505b6020821081036200018a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001e0576000816000526020600020601f850160051c81016020861015620001bb5750805b601f850160051c820191505b81811015620001dc57828155600101620001c7565b5050505b505050565b81516001600160401b038111156200020157620002016200013e565b620002198162000212845462000154565b8462000190565b602080601f831160018114620002515760008415620002385750858301515b600019600386901b1c1916600185901b178555620001dc565b600085815260208120601f198616915b82811015620002825788860151825594840194600190910190840162000261565b5085821015620002a15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b612f2c80620002c16000396000f3fe60806040526004361061022f5760003560e01c80636124d0f21161012e578063bd85b039116100ab578063e38ef6f91161006f578063e38ef6f91461075b578063e985e9c51461077b578063f242432a1461079b578063f337f7b0146107bb578063f5298aca146107db57600080fd5b8063bd85b0391461066a578063bddb8dd014610697578063c4214492146106e7578063d539139314610707578063d547741f1461073b57600080fd5b8063731133e9116100f2578063731133e9146105c15780637f345710146105e157806391d1485414610615578063a217fddf14610635578063a22cb4651461064a57600080fd5b80636124d0f2146104f9578063667c4bf61461051957806366cf73aa1461054d5780636b20c4541461056d57806372c16a241461058d57600080fd5b80632bd1b86d116101bc578063391feebb11610180578063391feebb1461042c5780633a178d991461045c57806347ad697f1461047c5780634e1273f41461049d5780634f558e79146104ca57600080fd5b80632bd1b86d146103995780632eb2c2d6146103ac5780632f2ff15d146103cc578063325e7d4f146103ec57806336568abe1461040c57600080fd5b806310f6b05e1161020357806310f6b05e146102e657806318160ddd146103145780631f7fdffa14610329578063243cb89d14610349578063248a9ca31461036957600080fd5b8062fdd58e1461023457806301ffc9a71461026757806302fe5305146102975780630e89341c146102b9575b600080fd5b34801561024057600080fd5b5061025461024f36600461225e565b6107fb565b6040519081526020015b60405180910390f35b34801561027357600080fd5b5061028761028236600461229e565b610823565b604051901515815260200161025e565b3480156102a357600080fd5b506102b76102b2366004612358565b61082e565b005b3480156102c557600080fd5b506102d96102d43660046123a8565b610865565b60405161025e9190612411565b3480156102f257600080fd5b50610306610301366004612424565b6108f9565b60405161025e92919061247b565b34801561032057600080fd5b50600554610254565b34801561033557600080fd5b506102b7610344366004612552565b610a4d565b34801561035557600080fd5b506102b7610364366004612608565b610c03565b34801561037557600080fd5b506102546103843660046123a8565b60009081526003602052604090206001015490565b6102d96103a736600461264e565b610c1a565b3480156103b857600080fd5b506102b76103c73660046126bf565b610ca4565b3480156103d857600080fd5b506102b76103e7366004612768565b610d0b565b3480156103f857600080fd5b506102b7610407366004612794565b610d36565b34801561041857600080fd5b506102b7610427366004612768565b610d6b565b34801561043857600080fd5b50610287610447366004612424565b60086020526000908152604090205460ff1681565b34801561046857600080fd5b506102876104773660046123a8565b610da3565b34801561048857600080fd5b5061028761049736600461229e565b50600190565b3480156104a957600080fd5b506104bd6104b83660046127c7565b610e64565b60405161025e9190612886565b3480156104d657600080fd5b506102876104e53660046123a8565b600090815260046020526040902054151590565b34801561050557600080fd5b506102b7610514366004612899565b610f30565b34801561052557600080fd5b506102547f3457543228280e934f333ccf79427006d99853af36eede398cfaed062df27cd481565b34801561055957600080fd5b506102b7610568366004612972565b610f65565b34801561057957600080fd5b506102b7610588366004612899565b61106e565b34801561059957600080fd5b506102547f7434c6f201a551bfd17336985361933e0c4935b520dac8a49d937b325f7d5c0a81565b3480156105cd57600080fd5b506102b76105dc366004612a6d565b6110cd565b3480156105ed57600080fd5b506102547f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c81565b34801561062157600080fd5b50610287610630366004612768565b611202565b34801561064157600080fd5b50610254600081565b34801561065657600080fd5b506102b7610665366004612ac1565b61122d565b34801561067657600080fd5b506102546106853660046123a8565b60009081526004602052604090205490565b3480156106a357600080fd5b506106d86106b23660046123a8565b6007602052600090815260409020805460019091015460ff808316926101009004169083565b60405161025e93929190612b13565b3480156106f357600080fd5b506102b7610702366004612ac1565b611238565b34801561071357600080fd5b506102547f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b34801561074757600080fd5b506102b7610756366004612768565b61126f565b34801561076757600080fd5b506102b7610776366004612b4b565b611294565b34801561078757600080fd5b50610287610796366004612bc3565b6112ca565b3480156107a757600080fd5b506102b76107b6366004612bed565b6112f8565b3480156107c757600080fd5b506106d86107d63660046123a8565b611357565b3480156107e757600080fd5b506102b76107f6366004612794565b6113fa565b6000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b600061081d82611430565b7f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c61085881611455565b61086182611462565b5050565b60606002805461087490612c51565b80601f01602080910402602001604051908101604052809291908181526020018280546108a090612c51565b80156108ed5780601f106108c2576101008083540402835291602001916108ed565b820191906000526020600020905b8154815290600101906020018083116108d057829003601f168201915b50505050509050919050565b606080600060015b600654811161093c57600061091686836107fb565b111561092a578161092681612ca1565b9250505b8061093481612ca1565b915050610901565b50806001600160401b03811115610955576109556122bb565b60405190808252806020026020018201604052801561097e578160200160208202803683370190505b509250806001600160401b03811115610999576109996122bb565b6040519080825280602002602001820160405280156109c2578160200160208202803683370190505b509150600060015b6006548111610a455760006109df87836107fb565b90508015610a3257818684815181106109fa576109fa612cba565b60200260200101818152505080858481518110610a1957610a19612cba565b602090810291909101015282610a2e81612ca1565b9350505b5080610a3d81612ca1565b9150506109ca565b505050915091565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610a7781611455565b60005b8451811015610bef57600060076000878481518110610a9b57610a9b612cba565b602002602001015181526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff166002811115610ae057610ae0612afd565b6002811115610af157610af1612afd565b81528154602090910190610100900460ff166005811115610b1457610b14612afd565b6005811115610b2557610b25612afd565b81526020016001820154815250509050600081604001511115610be6578060400151858381518110610b5957610b59612cba565b6020026020010151610b90888581518110610b7657610b76612cba565b602002602001015160009081526004602052604090205490565b610b9a9190612cd0565b1115610be65760405162461bcd60e51b815260206004820152601660248201527545786365656473206d6178696d756d20737570706c7960501b60448201526064015b60405180910390fd5b50600101610a7a565b50610bfc8585858561146e565b5050505050565b6000610c0e81611455565b610bfc858585856114a6565b6060610c296104978385612ce3565b610c5d57610c378284612ce3565b6040516368f7a3d160e11b81526001600160e01b03199091166004820152602401610bdd565b610c9d3084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061155c92505050565b9392505050565b336001600160a01b0386168114801590610cc55750610cc386826112ca565b155b15610cf65760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610bdd565b610d0386868686866115d2565b505050505050565b600082815260036020526040902060010154610d2681611455565b610d308383611632565b50505050565b7f7434c6f201a551bfd17336985361933e0c4935b520dac8a49d937b325f7d5c0a610d6081611455565b610d308484846116c6565b6001600160a01b0381163314610d945760405163334bd91960e11b815260040160405180910390fd5b610d9e828261172e565b505050565b600081815260076020526040808220815160608101909252805483929190829060ff166002811115610dd757610dd7612afd565b6002811115610de857610de8612afd565b81528154602090910190610100900460ff166005811115610e0b57610e0b612afd565b6005811115610e1c57610e1c612afd565b815260200160018201548152505090508060400151600003610e415750600192915050565b8060400151610e5c8460009081526004602052604090205490565b109392505050565b60608151835114610e955781518351604051635b05999160e01b815260048101929092526024820152604401610bdd565b600083516001600160401b03811115610eb057610eb06122bb565b604051908082528060200260200182016040528015610ed9578160200160208202803683370190505b50905060005b8451811015610f2857602080820286010151610f03906020808402870101516107fb565b828281518110610f1557610f15612cba565b6020908102919091010152600101610edf565b509392505050565b7f7434c6f201a551bfd17336985361933e0c4935b520dac8a49d937b325f7d5c0a610f5a81611455565b610d3084848461179b565b6000610f7081611455565b83518551148015610f82575082518551145b8015610f8f575081518551145b610fea5760405162461bcd60e51b815260206004820152602660248201527f496e70757420617272617973206d7573742068617665207468652073616d65206044820152650d8cadccee8d60d31b6064820152608401610bdd565b60005b8551811015610d035761106686828151811061100b5761100b612cba565b602002602001015186838151811061102557611025612cba565b602002602001015186848151811061103f5761103f612cba565b602002602001015186858151811061105957611059612cba565b60200260200101516114a6565b600101610fed565b6001600160a01b038316331480159061108e575061108c83336112ca565b155b156110c257335b60405163711bec9160e11b81526001600160a01b0391821660048201529084166024820152604401610bdd565b610d9e83838361179b565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66110f781611455565b6000848152600760205260408082208151606081019092528054829060ff16600281111561112757611127612afd565b600281111561113857611138612afd565b81528154602090910190610100900460ff16600581111561115b5761115b612afd565b600581111561116c5761116c612afd565b815260200160018201548152505090506000816040015111156111f6578060400151846111a58760009081526004602052604090205490565b6111af9190612cd0565b11156111f65760405162461bcd60e51b815260206004820152601660248201527545786365656473206d6178696d756d20737570706c7960501b6044820152606401610bdd565b610d03868686866117e1565b60009182526003602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61086133838361183e565b600061124381611455565b506001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b60008281526003602052604090206001015461128a81611455565b610d30838361172e565b7f3457543228280e934f333ccf79427006d99853af36eede398cfaed062df27cd46112be81611455565b610bfc858585856118d4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b336001600160a01b0386168114801590611319575061131786826112ca565b155b1561134a5760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610bdd565b610d038686868686611aec565b6000818152600760205260408082208151606081019092528054839283928392829060ff16600281111561138d5761138d612afd565b600281111561139e5761139e612afd565b81528154602090910190610100900460ff1660058111156113c1576113c1612afd565b60058111156113d2576113d2612afd565b8152600191909101546020918201528151908201516040909201519097919650945092505050565b6001600160a01b038316331480159061141a575061141883336112ca565b155b156114255733611095565b610d9e8383836116c6565b60006001600160e01b03198216637965db0b60e01b148061081d575061081d82611b7a565b61145f8133611bca565b50565b60026108618282612d5b565b6001600160a01b03841661149857604051632bfa23e760e11b815260006004820152602401610bdd565b610d30600085858585611c03565b60405180606001604052808460028111156114c3576114c3612afd565b81526020018260058111156114da576114da612afd565b81526020908101849052600086815260079091526040902081518154829060ff1916600183600281111561151057611510612afd565b021790555060208201518154829061ff00191661010083600581111561153857611538612afd565b021790555060408201518160010155905050600654841115610d3057505050600655565b6060600080846001600160a01b0316846040516115799190612e1a565b600060405180830381855af49150503d80600081146115b4576040519150601f19603f3d011682016040523d82523d6000602084013e6115b9565b606091505b50915091506115c9858383611c56565b95945050505050565b6001600160a01b0384166115fc57604051632bfa23e760e11b815260006004820152602401610bdd565b6001600160a01b03851661162557604051626a0d4560e21b815260006004820152602401610bdd565b610bfc8585858585611c03565b600061163e8383611202565b6116be5760008381526003602090815260408083206001600160a01b03861684529091529020805460ff191660011790556116763390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161081d565b50600061081d565b6001600160a01b0383166116ef57604051626a0d4560e21b815260006004820152602401610bdd565b604080516001808252602082018590528183019081526060820184905260a08201909252600060808201818152919291610bfc91879185908590611c03565b600061173a8383611202565b156116be5760008381526003602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161081d565b6001600160a01b0383166117c457604051626a0d4560e21b815260006004820152602401610bdd565b610d9e836000848460405180602001604052806000815250611c03565b6001600160a01b03841661180b57604051632bfa23e760e11b815260006004820152602401610bdd565b60408051600180825260208201869052818301908152606082018590526080820190925290610d03600087848487611c03565b6001600160a01b0382166118675760405162ced3e160e81b815260006004820152602401610bdd565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60005b8251811015611adf576000600760008584815181106118f8576118f8612cba565b602002602001015181526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff16600281111561193d5761193d612afd565b600281111561194e5761194e612afd565b81528154602090910190610100900460ff16600581111561197157611971612afd565b600581111561198257611982612afd565b81526001919091015460209091015290506001600160a01b038616158015906119b357506001600160a01b03851615155b15611ad6576001815160028111156119cd576119cd612afd565b03611a1a5760405162461bcd60e51b815260206004820152601860248201527f4974656d206973206e6f74207472616e7366657261626c6500000000000000006044820152606401610bdd565b600281516002811115611a2f57611a2f612afd565b03611ad6576001600160a01b03861660009081526008602052604090205460ff1680611a7357506001600160a01b03851660009081526008602052604090205460ff165b611ad65760405162461bcd60e51b815260206004820152602e60248201527f4569746865722073656e646572206f7220726563697069656e74206d7573742060448201526d1899481dda1a5d195b1a5cdd195960921b6064820152608401610bdd565b506001016118d7565b50610d3084848484611cb2565b6001600160a01b038416611b1657604051632bfa23e760e11b815260006004820152602401610bdd565b6001600160a01b038516611b3f57604051626a0d4560e21b815260006004820152602401610bdd565b60408051600180825260208201869052818301908152606082018590526080820190925290611b718787848487611c03565b50505050505050565b60006001600160e01b03198216636cdb3d1360e11b1480611bab57506001600160e01b031982166303a24d0760e21b145b8061081d57506301ffc9a760e01b6001600160e01b031983161461081d565b611bd48282611202565b6108615760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610bdd565b611c0f858585856118d4565b6001600160a01b03841615610bfc5782513390600103611c485760208481015190840151611c41838989858589611df8565b5050610d03565b610d03818787878787611f1c565b606082611c6b57611c6682612005565b610c9d565b8151158015611c8257506001600160a01b0384163b155b15611cab57604051639996b31560e01b81526001600160a01b0385166004820152602401610bdd565b5092915050565b611cbe8484848461202e565b6001600160a01b038416611d68576000805b8351811015611d4e576000838281518110611ced57611ced612cba565b602002602001015190508060046000878581518110611d0e57611d0e612cba565b602002602001015181526020019081526020016000206000828254611d339190612cd0565b90915550611d4390508184612cd0565b925050600101611cd0565b508060056000828254611d619190612cd0565b9091555050505b6001600160a01b038316610d30576000805b8351811015611de7576000838281518110611d9757611d97612cba565b602002602001015190508060046000878581518110611db857611db8612cba565b602090810291909101810151825281019190915260400160002080549190910390559190910190600101611d7a565b506005805491909103905550505050565b6001600160a01b0384163b15610d035760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190611e3c9089908990889088908890600401612e36565b6020604051808303816000875af1925050508015611e77575060408051601f3d908101601f19168201909252611e7491810190612e7b565b60015b611ee0573d808015611ea5576040519150601f19603f3d011682016040523d82523d6000602084013e611eaa565b606091505b508051600003611ed857604051632bfa23e760e11b81526001600160a01b0386166004820152602401610bdd565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b14611b7157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610bdd565b6001600160a01b0384163b15610d035760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611f609089908990889088908890600401612e98565b6020604051808303816000875af1925050508015611f9b575060408051601f3d908101601f19168201909252611f9891810190612e7b565b60015b611fc9573d808015611ea5576040519150601f19603f3d011682016040523d82523d6000602084013e611eaa565b6001600160e01b0319811663bc197c8160e01b14611b7157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610bdd565b8051156120155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b805182511461205d5781518151604051635b05999160e01b815260048101929092526024820152604401610bdd565b3360005b8351811015612163576020818102858101820151908501909101516001600160a01b03881615612114576000828152602081815260408083206001600160a01b038c168452909152902054818110156120ed576040516303dee4c560e01b81526001600160a01b038a166004820152602481018290526044810183905260648101849052608401610bdd565b6000838152602081815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b03871615612159576000828152602081815260408083206001600160a01b038b16845290915281208054839290612153908490612cd0565b90915550505b5050600101612061565b5082516001036121e45760208301516000906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516121d5929190918252602082015260400190565b60405180910390a45050610bfc565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161223392919061247b565b60405180910390a45050505050565b80356001600160a01b038116811461225957600080fd5b919050565b6000806040838503121561227157600080fd5b61227a83612242565b946020939093013593505050565b6001600160e01b03198116811461145f57600080fd5b6000602082840312156122b057600080fd5b8135610c9d81612288565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156122f9576122f96122bb565b604052919050565b60006001600160401b0383111561231a5761231a6122bb565b61232d601f8401601f19166020016122d1565b905082815283838301111561234157600080fd5b828260208301376000602084830101529392505050565b60006020828403121561236a57600080fd5b81356001600160401b0381111561238057600080fd5b8201601f8101841361239157600080fd5b6123a084823560208401612301565b949350505050565b6000602082840312156123ba57600080fd5b5035919050565b60005b838110156123dc5781810151838201526020016123c4565b50506000910152565b600081518084526123fd8160208601602086016123c1565b601f01601f19169290920160200192915050565b602081526000610c9d60208301846123e5565b60006020828403121561243657600080fd5b610c9d82612242565b60008151808452602080850194506020840160005b8381101561247057815187529582019590820190600101612454565b509495945050505050565b60408152600061248e604083018561243f565b82810360208401526115c9818561243f565b60006001600160401b038211156124b9576124b96122bb565b5060051b60200190565b600082601f8301126124d457600080fd5b813560206124e96124e4836124a0565b6122d1565b8083825260208201915060208460051b87010193508684111561250b57600080fd5b602086015b848110156125275780358352918301918301612510565b509695505050505050565b600082601f83011261254357600080fd5b610c9d83833560208501612301565b6000806000806080858703121561256857600080fd5b61257185612242565b935060208501356001600160401b038082111561258d57600080fd5b612599888389016124c3565b945060408701359150808211156125af57600080fd5b6125bb888389016124c3565b935060608701359150808211156125d157600080fd5b506125de87828801612532565b91505092959194509250565b80356003811061225957600080fd5b80356006811061225957600080fd5b6000806000806080858703121561261e57600080fd5b8435935061262e602086016125ea565b925060408501359150612643606086016125f9565b905092959194509250565b6000806020838503121561266157600080fd5b82356001600160401b038082111561267857600080fd5b818501915085601f83011261268c57600080fd5b81358181111561269b57600080fd5b8660208285010111156126ad57600080fd5b60209290920196919550909350505050565b600080600080600060a086880312156126d757600080fd5b6126e086612242565b94506126ee60208701612242565b935060408601356001600160401b038082111561270a57600080fd5b61271689838a016124c3565b9450606088013591508082111561272c57600080fd5b61273889838a016124c3565b9350608088013591508082111561274e57600080fd5b5061275b88828901612532565b9150509295509295909350565b6000806040838503121561277b57600080fd5b8235915061278b60208401612242565b90509250929050565b6000806000606084860312156127a957600080fd5b6127b284612242565b95602085013595506040909401359392505050565b600080604083850312156127da57600080fd5b82356001600160401b03808211156127f157600080fd5b818501915085601f83011261280557600080fd5b813560206128156124e4836124a0565b82815260059290921b8401810191818101908984111561283457600080fd5b948201945b838610156128595761284a86612242565b82529482019490820190612839565b9650508601359250508082111561286f57600080fd5b5061287c858286016124c3565b9150509250929050565b602081526000610c9d602083018461243f565b6000806000606084860312156128ae57600080fd5b6128b784612242565b925060208401356001600160401b03808211156128d357600080fd5b6128df878388016124c3565b935060408601359150808211156128f557600080fd5b50612902868287016124c3565b9150509250925092565b600082601f83011261291d57600080fd5b8135602061292d6124e4836124a0565b8083825260208201915060208460051b87010193508684111561294f57600080fd5b602086015b8481101561252757612965816125f9565b8352918301918301612954565b6000806000806080858703121561298857600080fd5b84356001600160401b038082111561299f57600080fd5b6129ab888389016124c3565b95506020915081870135818111156129c257600080fd5b8701601f810189136129d357600080fd5b80356129e16124e4826124a0565b81815260059190911b8201840190848101908b831115612a0057600080fd5b928501925b82841015612a2557612a16846125ea565b82529285019290850190612a05565b97505050506040870135915080821115612a3e57600080fd5b612a4a888389016124c3565b93506060870135915080821115612a6057600080fd5b506125de8782880161290c565b60008060008060808587031215612a8357600080fd5b612a8c85612242565b9350602085013592506040850135915060608501356001600160401b03811115612ab557600080fd5b6125de87828801612532565b60008060408385031215612ad457600080fd5b612add83612242565b915060208301358015158114612af257600080fd5b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b6060810160038510612b2757612b27612afd565b84825260068410612b3a57612b3a612afd565b602082019390935260400152919050565b60008060008060808587031215612b6157600080fd5b612b6a85612242565b9350612b7860208601612242565b925060408501356001600160401b0380821115612b9457600080fd5b612ba0888389016124c3565b93506060870135915080821115612bb657600080fd5b506125de878288016124c3565b60008060408385031215612bd657600080fd5b612bdf83612242565b915061278b60208401612242565b600080600080600060a08688031215612c0557600080fd5b612c0e86612242565b9450612c1c60208701612242565b9350604086013592506060860135915060808601356001600160401b03811115612c4557600080fd5b61275b88828901612532565b600181811c90821680612c6557607f821691505b602082108103612c8557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600060018201612cb357612cb3612c8b565b5060010190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561081d5761081d612c8b565b6001600160e01b03198135818116916004851015612d0b5780818660040360031b1b83161692505b505092915050565b601f821115610d9e576000816000526020600020601f850160051c81016020861015612d3c5750805b601f850160051c820191505b81811015610d0357828155600101612d48565b81516001600160401b03811115612d7457612d746122bb565b612d8881612d828454612c51565b84612d13565b602080601f831160018114612dbd5760008415612da55750858301515b600019600386901b1c1916600185901b178555610d03565b600085815260208120601f198616915b82811015612dec57888601518255948401946001909101908401612dcd565b5085821015612e0a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251612e2c8184602087016123c1565b9190910192915050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090612e70908301846123e5565b979650505050505050565b600060208284031215612e8d57600080fd5b8151610c9d81612288565b6001600160a01b0386811682528516602082015260a060408201819052600090612ec49083018661243f565b8281036060840152612ed6818661243f565b90508281036080840152612eea81856123e5565b9897505050505050505056fea2646970667358221220c16d7676c88d5c56faea159fbd3f256697330c038bf0f45361ab13210c9fd5a964736f6c6343000818003368747470733a2f2f6170692e746f6b69656d6f6e2e696f2f6974656d732f7b69647d