60806040526001600855348015610014575f5ffd5b50604051613570380380613570833981810160405281019061003691906101c9565b8181815f9081610046919061044f565b508060019081610056919061044f565b505050600660018160018154018082558091505003905f5260205f20905050505061051e565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100db82610095565b810181811067ffffffffffffffff821117156100fa576100f96100a5565b5b80604052505050565b5f61010c61007c565b905061011882826100d2565b919050565b5f67ffffffffffffffff821115610137576101366100a5565b5b61014082610095565b9050602081019050919050565b8281835e5f83830152505050565b5f61016d6101688461011d565b610103565b90508281526020810184848401111561018957610188610091565b5b61019484828561014d565b509392505050565b5f82601f8301126101b0576101af61008d565b5b81516101c084826020860161015b565b91505092915050565b5f5f604083850312156101df576101de610085565b5b5f83015167ffffffffffffffff8111156101fc576101fb610089565b5b6102088582860161019c565b925050602083015167ffffffffffffffff81111561022957610228610089565b5b6102358582860161019c565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061028d57607f821691505b6020821081036102a05761029f610249565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026103027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102c7565b61030c86836102c7565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61035061034b61034684610324565b61032d565b610324565b9050919050565b5f819050919050565b61036983610336565b61037d61037582610357565b8484546102d3565b825550505050565b5f5f905090565b610394610385565b61039f818484610360565b505050565b5b818110156103c2576103b75f8261038c565b6001810190506103a5565b5050565b601f821115610407576103d8816102a6565b6103e1846102b8565b810160208510156103f0578190505b6104046103fc856102b8565b8301826103a4565b50505b505050565b5f82821c905092915050565b5f6104275f198460080261040c565b1980831691505092915050565b5f61043f8383610418565b9150826002028217905092915050565b6104588261023f565b67ffffffffffffffff811115610471576104706100a5565b5b61047b8254610276565b6104868282856103c6565b5f60209050601f8311600181146104b7575f84156104a5578287015190505b6104af8582610434565b865550610516565b601f1984166104c5866102a6565b5f5b828110156104ec578489015182556001820191506020850194506020810190506104c7565b868310156105095784890151610505601f891682610418565b8355505b6001600288020188555050505b505050505050565b6130458061052b5f395ff3fe608060405234801561000f575f5ffd5b506004361061011f575f3560e01c806361bc221a116100ab57806397afe82d1161006f57806397afe82d1461031a578063a22cb4651461034a578063b88d4fde14610366578063c87b56dd14610382578063e985e9c5146103b25761011f565b806361bc221a1461024b5780636352211e1461026957806370a08231146102995780637cb82b2a146102c957806395d89b41146102fc5761011f565b806323b872dd116100f257806323b872dd146101bd5780632c83ea56146101d9578063350fe165146101f557806342842e0e1461021157806349af5bfe1461022d5761011f565b806301ffc9a71461012357806306fdde0314610153578063081812fc14610171578063095ea7b3146101a1575b5f5ffd5b61013d600480360381019061013891906120f7565b6103e2565b60405161014a919061213c565b60405180910390f35b61015b6104c3565b60405161016891906121c5565b60405180910390f35b61018b60048036038101906101869190612218565b610552565b6040516101989190612282565b60405180910390f35b6101bb60048036038101906101b691906122c5565b61056d565b005b6101d760048036038101906101d29190612303565b610583565b005b6101f360048036038101906101ee9190612353565b610682565b005b61020f600480360381019061020a91906123f2565b6107f4565b005b61022b60048036038101906102269190612303565b610afa565b005b610235610b19565b6040516102429190612622565b60405180910390f35b610253610e71565b6040516102609190612651565b60405180910390f35b610283600480360381019061027e9190612218565b610e77565b6040516102909190612282565b60405180910390f35b6102b360048036038101906102ae919061266a565b610e88565b6040516102c09190612651565b60405180910390f35b6102e360048036038101906102de9190612218565b610f3e565b6040516102f39493929190612695565b60405180910390f35b61030461112a565b60405161031191906121c5565b60405180910390f35b610334600480360381019061032f91906122c5565b6111ba565b6040516103419190612651565b60405180910390f35b610364600480360381019061035f9190612717565b6111e5565b005b610380600480360381019061037b919061287d565b6111fb565b005b61039c60048036038101906103979190612218565b611220565b6040516103a991906121c5565b60405180910390f35b6103cc60048036038101906103c791906128fd565b611286565b6040516103d9919061213c565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104ac57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104bc57506104bb82611314565b5b9050919050565b60605f80546104d190612968565b80601f01602080910402602001604051908101604052809291908181526020018280546104fd90612968565b80156105485780601f1061051f57610100808354040283529160200191610548565b820191905f5260205f20905b81548152906001019060200180831161052b57829003601f168201915b5050505050905090565b5f61055c8261137d565b5061056682611403565b9050919050565b61057f828261057a61143c565b611443565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105f3575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016105ea9190612282565b60405180910390fd5b5f610606838361060161143c565b611455565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461067c578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161067393929190612998565b60405180910390fd5b50505050565b60085482106106c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bd90612a17565b60405180910390fd5b5f600683815481106106db576106da612a35565b5b905f5260205f2090600402019050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661072b84610e77565b73ffffffffffffffffffffffffffffffffffffffff161461078357826040517f03ce4e3200000000000000000000000000000000000000000000000000000000815260040161077a9190612651565b60405180910390fd5b61078e338385610afa565b60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2083908060018154018082558091505060019003905f5260205f20015f9091909190915055505050565b60098686604051610806929190612a90565b90815260200160405180910390205f9054906101000a900460ff1680610855575060098484604051610839929190612a90565b90815260200160405180910390205f9054906101000a900460ff165b8061088957506009828260405161086d929190612a90565b90815260200160405180910390205f9054906101000a900460ff165b156108c0576040517f693a889e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600987876040516108d4929190612a90565b90815260200160405180910390205f6101000a81548160ff02191690831515021790555060016009858560405161090c929190612a90565b90815260200160405180910390205f6101000a81548160ff021916908315150217905550600160098383604051610944929190612a90565b90815260200160405180910390205f6101000a81548160ff0219169083151502179055505f600660018160018154018082558091505003905f5260205f209060040201905033815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086868260010191826109dd929190612c52565b5084848260020191826109f1929190612c52565b508282826003019182610a05929190612c52565b50610a1233600854611660565b80600660085481548110610a2957610a28612a35565b5b905f5260205f2090600402015f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018201816001019081610aac9190612d34565b5060028201816002019081610ac19190612d34565b5060038201816003019081610ad69190612d34565b5090505060085f815480929190610aec90612e46565b919050555050505050505050565b610b1483838360405180602001604052805f8152506111fb565b505050565b60605f60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480602002602001604051908101604052809291908181526020018280548015610ba157602002820191905f5260205f20905b815481526020019060010190808311610b8d575b505050505090505f815167ffffffffffffffff811115610bc457610bc3612759565b5b604051908082528060200260200182016040528015610bfd57816020015b610bea612054565b815260200190600190039081610be25790505b5090505f5f90505b8251811015610e685760068181548110610c2257610c21612a35565b5b905f5260205f2090600402016040518060800160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054610c9d90612968565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc990612968565b8015610d145780601f10610ceb57610100808354040283529160200191610d14565b820191905f5260205f20905b815481529060010190602001808311610cf757829003601f168201915b50505050508152602001600282018054610d2d90612968565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5990612968565b8015610da45780601f10610d7b57610100808354040283529160200191610da4565b820191905f5260205f20905b815481529060010190602001808311610d8757829003601f168201915b50505050508152602001600382018054610dbd90612968565b80601f0160208091040260200160405190810160405280929190818152602001828054610de990612968565b8015610e345780601f10610e0b57610100808354040283529160200191610e34565b820191905f5260205f20905b815481529060010190602001808311610e1757829003601f168201915b505050505081525050828281518110610e5057610e4f612a35565b5b60200260200101819052508080600101915050610c05565b50809250505090565b60085481565b5f610e818261137d565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ef9575f6040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610ef09190612282565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60068181548110610f4d575f80fd5b905f5260205f2090600402015f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054610f9190612968565b80601f0160208091040260200160405190810160405280929190818152602001828054610fbd90612968565b80156110085780601f10610fdf57610100808354040283529160200191611008565b820191905f5260205f20905b815481529060010190602001808311610feb57829003601f168201915b50505050509080600201805461101d90612968565b80601f016020809104026020016040519081016040528092919081815260200182805461104990612968565b80156110945780601f1061106b57610100808354040283529160200191611094565b820191905f5260205f20905b81548152906001019060200180831161107757829003601f168201915b5050505050908060030180546110a990612968565b80601f01602080910402602001604051908101604052809291908181526020018280546110d590612968565b80156111205780601f106110f757610100808354040283529160200191611120565b820191905f5260205f20905b81548152906001019060200180831161110357829003601f168201915b5050505050905084565b60606001805461113990612968565b80601f016020809104026020016040519081016040528092919081815260200182805461116590612968565b80156111b05780601f10611187576101008083540402835291602001916111b0565b820191905f5260205f20905b81548152906001019060200180831161119357829003601f168201915b5050505050905090565b6007602052815f5260405f2081815481106111d3575f80fd5b905f5260205f20015f91509150505481565b6111f76111f061143c565b838361167d565b5050565b611206848484610583565b61121a61121161143c565b858585856117e6565b50505050565b606061122b8261137d565b505f611235611992565b90505f8151116112535760405180602001604052805f81525061127e565b8061125d846119a8565b60405160200161126e929190612ebd565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f61138883611a72565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113fa57826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016113f19190612651565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6114508383836001611aab565b505050565b5f5f61146084611a72565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146114a1576114a0818486611c6a565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461152c576114e05f855f5f611aab565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146115ab57600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b611679828260405180602001604052805f815250611d2d565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116ed57816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016116e49190612282565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117d9919061213c565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b111561198b578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b81526004016118449493929190612f32565b6020604051808303815f875af192505050801561187f57506040513d601f19601f8201168201806040525081019061187c9190612f90565b60015b611900573d805f81146118ad576040519150601f19603f3d011682016040523d82523d5f602084013e6118b2565b606091505b505f8151036118f857836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118ef9190612282565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461198957836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016119809190612282565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f60016119b684611d50565b0190505f8167ffffffffffffffff8111156119d4576119d3612759565b5b6040519080825280601f01601f191660200182016040528015611a065781602001600182028036833780820191505090505b5090505f82602001820190505b600115611a67578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611a5c57611a5b612fbb565b5b0494505f8503611a13575b819350505050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611ae357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c15575f611af28461137d565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b5c57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611b6f5750611b6d8184611286565b155b15611bb157826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611ba89190612282565b60405180910390fd5b8115611c1357838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611c75838383611ea1565b611d28575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ce957806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611ce09190612651565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611d1f929190612fe8565b60405180910390fd5b505050565b611d378383611f61565b611d4b611d4261143c565b5f8585856117e6565b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611dac577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611da257611da1612fbb565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611de9576d04ee2d6d415b85acef81000000008381611ddf57611dde612fbb565b5b0492506020810190505b662386f26fc100008310611e1857662386f26fc100008381611e0e57611e0d612fbb565b5b0492506010810190505b6305f5e1008310611e41576305f5e1008381611e3757611e36612fbb565b5b0492506008810190505b6127108310611e66576127108381611e5c57611e5b612fbb565b5b0492506004810190505b60648310611e895760648381611e7f57611e7e612fbb565b5b0492506002810190505b600a8310611e98576001810190505b80915050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f5857508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611f195750611f188484611286565b5b80611f5757508273ffffffffffffffffffffffffffffffffffffffff16611f3f83611403565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fd1575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611fc89190612282565b60405180910390fd5b5f611fdd83835f611455565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461204f575f6040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016120469190612282565b60405180910390fd5b505050565b60405180608001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6120d6816120a2565b81146120e0575f5ffd5b50565b5f813590506120f1816120cd565b92915050565b5f6020828403121561210c5761210b61209a565b5b5f612119848285016120e3565b91505092915050565b5f8115159050919050565b61213681612122565b82525050565b5f60208201905061214f5f83018461212d565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61219782612155565b6121a1818561215f565b93506121b181856020860161216f565b6121ba8161217d565b840191505092915050565b5f6020820190508181035f8301526121dd818461218d565b905092915050565b5f819050919050565b6121f7816121e5565b8114612201575f5ffd5b50565b5f81359050612212816121ee565b92915050565b5f6020828403121561222d5761222c61209a565b5b5f61223a84828501612204565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61226c82612243565b9050919050565b61227c81612262565b82525050565b5f6020820190506122955f830184612273565b92915050565b6122a481612262565b81146122ae575f5ffd5b50565b5f813590506122bf8161229b565b92915050565b5f5f604083850312156122db576122da61209a565b5b5f6122e8858286016122b1565b92505060206122f985828601612204565b9150509250929050565b5f5f5f6060848603121561231a5761231961209a565b5b5f612327868287016122b1565b9350506020612338868287016122b1565b925050604061234986828701612204565b9150509250925092565b5f5f604083850312156123695761236861209a565b5b5f61237685828601612204565b9250506020612387858286016122b1565b9150509250929050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126123b2576123b1612391565b5b8235905067ffffffffffffffff8111156123cf576123ce612395565b5b6020830191508360018202830111156123eb576123ea612399565b5b9250929050565b5f5f5f5f5f5f6060878903121561240c5761240b61209a565b5b5f87013567ffffffffffffffff8111156124295761242861209e565b5b61243589828a0161239d565b9650965050602087013567ffffffffffffffff8111156124585761245761209e565b5b61246489828a0161239d565b9450945050604087013567ffffffffffffffff8111156124875761248661209e565b5b61249389828a0161239d565b92509250509295509295509295565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6124d481612262565b82525050565b5f82825260208201905092915050565b5f6124f482612155565b6124fe81856124da565b935061250e81856020860161216f565b6125178161217d565b840191505092915050565b5f608083015f8301516125375f8601826124cb565b506020830151848203602086015261254f82826124ea565b9150506040830151848203604086015261256982826124ea565b9150506060830151848203606086015261258382826124ea565b9150508091505092915050565b5f61259b8383612522565b905092915050565b5f602082019050919050565b5f6125b9826124a2565b6125c381856124ac565b9350836020820285016125d5856124bc565b805f5b8581101561261057848403895281516125f18582612590565b94506125fc836125a3565b925060208a019950506001810190506125d8565b50829750879550505050505092915050565b5f6020820190508181035f83015261263a81846125af565b905092915050565b61264b816121e5565b82525050565b5f6020820190506126645f830184612642565b92915050565b5f6020828403121561267f5761267e61209a565b5b5f61268c848285016122b1565b91505092915050565b5f6080820190506126a85f830187612273565b81810360208301526126ba818661218d565b905081810360408301526126ce818561218d565b905081810360608301526126e2818461218d565b905095945050505050565b6126f681612122565b8114612700575f5ffd5b50565b5f81359050612711816126ed565b92915050565b5f5f6040838503121561272d5761272c61209a565b5b5f61273a858286016122b1565b925050602061274b85828601612703565b9150509250929050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61278f8261217d565b810181811067ffffffffffffffff821117156127ae576127ad612759565b5b80604052505050565b5f6127c0612091565b90506127cc8282612786565b919050565b5f67ffffffffffffffff8211156127eb576127ea612759565b5b6127f48261217d565b9050602081019050919050565b828183375f83830152505050565b5f61282161281c846127d1565b6127b7565b90508281526020810184848401111561283d5761283c612755565b5b612848848285612801565b509392505050565b5f82601f83011261286457612863612391565b5b813561287484826020860161280f565b91505092915050565b5f5f5f5f608085870312156128955761289461209a565b5b5f6128a2878288016122b1565b94505060206128b3878288016122b1565b93505060406128c487828801612204565b925050606085013567ffffffffffffffff8111156128e5576128e461209e565b5b6128f187828801612850565b91505092959194509250565b5f5f604083850312156129135761291261209a565b5b5f612920858286016122b1565b9250506020612931858286016122b1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061297f57607f821691505b6020821081036129925761299161293b565b5b50919050565b5f6060820190506129ab5f830186612273565b6129b86020830185612642565b6129c56040830184612273565b949350505050565b7f4944206e6f7420666f756e6400000000000000000000000000000000000000005f82015250565b5f612a01600c8361215f565b9150612a0c826129cd565b602082019050919050565b5f6020820190508181035f830152612a2e816129f5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b5f612a778385612a62565b9350612a84838584612801565b82840190509392505050565b5f612a9c828486612a6c565b91508190509392505050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612b0e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612ad3565b612b188683612ad3565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612b53612b4e612b49846121e5565b612b30565b6121e5565b9050919050565b5f819050919050565b612b6c83612b39565b612b80612b7882612b5a565b848454612adf565b825550505050565b5f5f905090565b612b97612b88565b612ba2818484612b63565b505050565b5b81811015612bc557612bba5f82612b8f565b600181019050612ba8565b5050565b601f821115612c0a57612bdb81612ab2565b612be484612ac4565b81016020851015612bf3578190505b612c07612bff85612ac4565b830182612ba7565b50505b505050565b5f82821c905092915050565b5f612c2a5f1984600802612c0f565b1980831691505092915050565b5f612c428383612c1b565b9150826002028217905092915050565b612c5c8383612aa8565b67ffffffffffffffff811115612c7557612c74612759565b5b612c7f8254612968565b612c8a828285612bc9565b5f601f831160018114612cb7575f8415612ca5578287013590505b612caf8582612c37565b865550612d16565b601f198416612cc586612ab2565b5f5b82811015612cec57848901358255600182019150602085019450602081019050612cc7565b86831015612d095784890135612d05601f891682612c1b565b8355505b6001600288020188555050505b50505050505050565b5f81549050612d2d81612968565b9050919050565b818103612d42575050612e17565b612d4b82612d1f565b67ffffffffffffffff811115612d6457612d63612759565b5b612d6e8254612968565b612d79828285612bc9565b5f601f831160018114612da6575f8415612d94578287015490505b612d9e8582612c37565b865550612e10565b601f198416612db487612ab2565b9650612dbf86612ab2565b5f5b82811015612de657848901548255600182019150600185019450602081019050612dc1565b86831015612e035784890154612dff601f891682612c1b565b8355505b6001600288020188555050505b5050505050505b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612e50826121e5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e8257612e81612e19565b5b600182019050919050565b5f612e9782612155565b612ea18185612a62565b9350612eb181856020860161216f565b80840191505092915050565b5f612ec88285612e8d565b9150612ed48284612e8d565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f612f0482612ee0565b612f0e8185612eea565b9350612f1e81856020860161216f565b612f278161217d565b840191505092915050565b5f608082019050612f455f830187612273565b612f526020830186612273565b612f5f6040830185612642565b8181036060830152612f718184612efa565b905095945050505050565b5f81519050612f8a816120cd565b92915050565b5f60208284031215612fa557612fa461209a565b5b5f612fb284828501612f7c565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f604082019050612ffb5f830185612273565b6130086020830184612642565b939250505056fea2646970667358221220626da425c59d07d5463847a60059aaa85ae5e15278ca504b838c59555f7f4ee564736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000054861696b75000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000448494b5500000000000000000000000000000000000000000000000000000000