608060405234801561000f575f80fd5b5060405161369a38038061369a833981810160405281019061003191906103f4565b8181816002908161004291906106a7565b50806003908161005291906106a7565b5050506100675f801b866100b960201b60201c565b5082600a8190555083600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050610776565b5f6100ca83836101af60201b60201c565b6101a557600160095f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061014261021360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506101a9565b5f90505b92915050565b5f60095f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f33905090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102548261022b565b9050919050565b6102648161024a565b811461026e575f80fd5b50565b5f8151905061027f8161025b565b92915050565b5f819050919050565b61029781610285565b81146102a1575f80fd5b50565b5f815190506102b28161028e565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610306826102c0565b810181811067ffffffffffffffff82111715610325576103246102d0565b5b80604052505050565b5f61033761021a565b905061034382826102fd565b919050565b5f67ffffffffffffffff821115610362576103616102d0565b5b61036b826102c0565b9050602081019050919050565b8281835e5f83830152505050565b5f61039861039384610348565b61032e565b9050828152602081018484840111156103b4576103b36102bc565b5b6103bf848285610378565b509392505050565b5f82601f8301126103db576103da6102b8565b5b81516103eb848260208601610386565b91505092915050565b5f805f805f60a0868803121561040d5761040c610223565b5b5f61041a88828901610271565b955050602061042b88828901610271565b945050604061043c888289016102a4565b935050606086015167ffffffffffffffff81111561045d5761045c610227565b5b610469888289016103c7565b925050608086015167ffffffffffffffff81111561048a57610489610227565b5b610496888289016103c7565b9150509295509295909350565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806104f157607f821691505b602082108103610504576105036104ad565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105667fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261052b565b610570868361052b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6105ab6105a66105a184610285565b610588565b610285565b9050919050565b5f819050919050565b6105c483610591565b6105d86105d0826105b2565b848454610537565b825550505050565b5f90565b6105ec6105e0565b6105f78184846105bb565b505050565b5b8181101561061a5761060f5f826105e4565b6001810190506105fd565b5050565b601f82111561065f576106308161050a565b6106398461051c565b81016020851015610648578190505b61065c6106548561051c565b8301826105fc565b50505b505050565b5f82821c905092915050565b5f61067f5f1984600802610664565b1980831691505092915050565b5f6106978383610670565b9150826002028217905092915050565b6106b0826104a3565b67ffffffffffffffff8111156106c9576106c86102d0565b5b6106d382546104da565b6106de82828561061e565b5f60209050601f83116001811461070f575f84156106fd578287015190505b610707858261068c565b86555061076e565b601f19841661071d8661050a565b5f5b828110156107445784890151825560018201915060208501945060208101905061071f565b86831015610761578489015161075d601f891682610670565b8355505b6001600288020188555050505b505050505050565b612f17806107835f395ff3fe608060405234801561000f575f80fd5b5060043610610140575f3560e01c806370a08231116100b6578063a217fddf1161007a578063a217fddf14610397578063a22cb465146103b5578063b88d4fde146103d1578063c87b56dd146103ed578063d547741f1461041d578063e985e9c51461043957610140565b806370a08231146102df5780637c8e7bfe1461030f578063813424961461032d57806391d148541461034957806395d89b411461037957610140565b8063248a9ca311610108578063248a9ca3146101fa5780632a55205a1461022a5780632f2ff15d1461025b57806336568abe1461027757806342842e0e146102935780636352211e146102af57610140565b806301ffc9a71461014457806306fdde0314610174578063081812fc14610192578063095ea7b3146101c257806323b872dd146101de575b5f80fd5b61015e600480360381019061015991906121a4565b610469565b60405161016b91906121e9565b60405180910390f35b61017c61047a565b6040516101899190612272565b60405180910390f35b6101ac60048036038101906101a791906122c5565b61050a565b6040516101b9919061232f565b60405180910390f35b6101dc60048036038101906101d79190612372565b610525565b005b6101f860048036038101906101f391906123b0565b61053b565b005b610214600480360381019061020f9190612433565b61063a565b604051610221919061246d565b60405180910390f35b610244600480360381019061023f9190612486565b610657565b6040516102529291906124d3565b60405180910390f35b610275600480360381019061027091906124fa565b610832565b005b610291600480360381019061028c91906124fa565b610854565b005b6102ad60048036038101906102a891906123b0565b6108cf565b005b6102c960048036038101906102c491906122c5565b6108ee565b6040516102d6919061232f565b60405180910390f35b6102f960048036038101906102f49190612538565b6108ff565b6040516103069190612563565b60405180910390f35b6103176109b5565b6040516103249190612563565b60405180910390f35b610347600480360381019061034291906126e9565b6109be565b005b610363600480360381019061035e91906124fa565b610a11565b60405161037091906121e9565b60405180910390f35b610381610a75565b60405161038e9190612272565b60405180910390f35b61039f610b05565b6040516103ac919061246d565b60405180910390f35b6103cf60048036038101906103ca9190612793565b610b0b565b005b6103eb60048036038101906103e6919061286f565b610b21565b005b610407600480360381019061040291906122c5565b610b3e565b6040516104149190612272565b60405180910390f35b610437600480360381019061043291906124fa565b610b50565b005b610453600480360381019061044e91906128ef565b610b72565b60405161046091906121e9565b60405180910390f35b5f61047382610c00565b9050919050565b6060600280546104899061295a565b80601f01602080910402602001604051908101604052809291908181526020018280546104b59061295a565b80156105005780601f106104d757610100808354040283529160200191610500565b820191905f5260205f20905b8154815290600101906020018083116104e357829003601f168201915b5050505050905090565b5f61051482610c79565b5061051e82610cff565b9050919050565b6105378282610532610d38565b610d3f565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105ab575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016105a2919061232f565b60405180910390fd5b5f6105be83836105b9610d38565b610d51565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610634578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161062b9392919061298a565b60405180910390fd5b50505050565b5f60095f8381526020019081526020015f20600101549050919050565b5f805f60015f8681526020019081526020015f206040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020015f820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505f73ffffffffffffffffffffffffffffffffffffffff16815f015173ffffffffffffffffffffffffffffffffffffffff16036107df575f6040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020015f820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b5f6107e8610f5c565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff168661081491906129ec565b61081e9190612a5a565b9050815f0151819350935050509250929050565b61083b8261063a565b61084481610f65565b61084e8383610f79565b50505050565b61085c610d38565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108c0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108ca8282611063565b505050565b6108e983838360405180602001604052805f815250610b21565b505050565b5f6108f882610c79565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610970575f6040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610967919061232f565b60405180910390fd5b60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f600a54905090565b5f801b6109ca81610f65565b6109d4858561114d565b6109de848361116a565b610a0a84600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856111c4565b5050505050565b5f60095f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b606060038054610a849061295a565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab09061295a565b8015610afb5780601f10610ad257610100808354040283529160200191610afb565b820191905f5260205f20905b815481529060010190602001808311610ade57829003601f168201915b5050505050905090565b5f801b81565b610b1d610b16610d38565b8383611373565b5050565b610b2c84848461053b565b610b38848484846114dc565b50505050565b6060610b498261168e565b9050919050565b610b598261063a565b610b6281610f65565b610b6c8383611063565b50505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c725750610c7182611799565b5b9050919050565b5f80610c84836117f9565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cf657826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610ced9190612563565b60405180910390fd5b80915050919050565b5f60065f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b610d4c8383836001611832565b505050565b5f80610d5c846117f9565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610d9d57610d9c8184866119f1565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e2857610ddc5f855f80611832565b600160055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610ea757600160055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460045f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f612710905090565b610f7681610f71610d38565b611ab4565b50565b5f610f848383610a11565b61105957600160095f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610ff6610d38565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061105d565b5f90505b92915050565b5f61106e8383610a11565b15611143575f60095f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506110e0610d38565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611147565b5f90505b92915050565b611166828260405180602001604052805f815250611b05565b5050565b8060085f8481526020019081526020015f2090816111889190612c27565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516111b89190612563565b60405180910390a15050565b5f6111cd610f5c565b6bffffffffffffffffffffffff16905080826bffffffffffffffffffffffff161115611234578382826040517fdfd1fc1b00000000000000000000000000000000000000000000000000000000815260040161122b93929190612d26565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a657835f6040517f969f085200000000000000000000000000000000000000000000000000000000815260040161129d929190612d5b565b60405180910390fd5b60405180604001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001836bffffffffffffffffffffffff1681525060015f8681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151815f0160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113e357816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016113da919061232f565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516114cf91906121e9565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611688578273ffffffffffffffffffffffffffffffffffffffff1663150b7a0261151f610d38565b8685856040518563ffffffff1660e01b81526004016115419493929190612dd4565b6020604051808303815f875af192505050801561157c57506040513d601f19601f820116820180604052508101906115799190612e32565b60015b6115fd573d805f81146115aa576040519150601f19603f3d011682016040523d82523d5f602084013e6115af565b606091505b505f8151036115f557836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016115ec919061232f565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461168657836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161167d919061232f565b60405180910390fd5b505b50505050565b606061169982610c79565b505f60085f8481526020019081526020015f2080546116b79061295a565b80601f01602080910402602001604051908101604052809291908181526020018280546116e39061295a565b801561172e5780601f106117055761010080835404028352916020019161172e565b820191905f5260205f20905b81548152906001019060200180831161171157829003601f168201915b505050505090505f61173e611b20565b90505f815103611752578192505050611794565b5f8251111561178657808260405160200161176e929190612e97565b60405160208183030381529060405292505050611794565b61178f84611b36565b925050505b919050565b5f634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806117f257506117f182611b9c565b5b9050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061186a57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561199c575f61187984610c79565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118e357508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156118f657506118f48184610b72565b155b1561193857826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161192f919061232f565b60405180910390fd5b811561199a57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360065f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6119fc838383611bad565b611aaf575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a7057806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611a679190612563565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611aa69291906124d3565b60405180910390fd5b505050565b611abe8282610a11565b611b015780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401611af8929190612eba565b60405180910390fd5b5050565b611b0f8383611c6d565b611b1b5f8484846114dc565b505050565b606060405180602001604052805f815250905090565b6060611b4182610c79565b505f611b4b611b20565b90505f815111611b695760405180602001604052805f815250611b94565b80611b7384611d60565b604051602001611b84929190612e97565b6040516020818303038152906040525b915050919050565b5f611ba682611e2a565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c6457508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611c255750611c248484610b72565b5b80611c6357508273ffffffffffffffffffffffffffffffffffffffff16611c4b83610cff565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cdd575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611cd4919061232f565b60405180910390fd5b5f611ce983835f610d51565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611d5b575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611d52919061232f565b60405180910390fd5b505050565b60605f6001611d6e84611f0b565b0190505f8167ffffffffffffffff811115611d8c57611d8b6125c5565b5b6040519080825280601f01601f191660200182016040528015611dbe5781602001600182028036833780820191505090505b5090505f82602001820190505b600115611e1f578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611e1457611e13612a2d565b5b0494505f8503611dcb575b819350505050919050565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611ef457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611f045750611f038261205c565b5b9050919050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611f67577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611f5d57611f5c612a2d565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611fa4576d04ee2d6d415b85acef81000000008381611f9a57611f99612a2d565b5b0492506020810190505b662386f26fc100008310611fd357662386f26fc100008381611fc957611fc8612a2d565b5b0492506010810190505b6305f5e1008310611ffc576305f5e1008381611ff257611ff1612a2d565b5b0492506008810190505b612710831061202157612710838161201757612016612a2d565b5b0492506004810190505b60648310612044576064838161203a57612039612a2d565b5b0492506002810190505b600a8310612053576001810190505b80915050919050565b5f7f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806120ce57506120cd826120d5565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6121838161214f565b811461218d575f80fd5b50565b5f8135905061219e8161217a565b92915050565b5f602082840312156121b9576121b8612147565b5b5f6121c684828501612190565b91505092915050565b5f8115159050919050565b6121e3816121cf565b82525050565b5f6020820190506121fc5f8301846121da565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61224482612202565b61224e818561220c565b935061225e81856020860161221c565b6122678161222a565b840191505092915050565b5f6020820190508181035f83015261228a818461223a565b905092915050565b5f819050919050565b6122a481612292565b81146122ae575f80fd5b50565b5f813590506122bf8161229b565b92915050565b5f602082840312156122da576122d9612147565b5b5f6122e7848285016122b1565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612319826122f0565b9050919050565b6123298161230f565b82525050565b5f6020820190506123425f830184612320565b92915050565b6123518161230f565b811461235b575f80fd5b50565b5f8135905061236c81612348565b92915050565b5f806040838503121561238857612387612147565b5b5f6123958582860161235e565b92505060206123a6858286016122b1565b9150509250929050565b5f805f606084860312156123c7576123c6612147565b5b5f6123d48682870161235e565b93505060206123e58682870161235e565b92505060406123f6868287016122b1565b9150509250925092565b5f819050919050565b61241281612400565b811461241c575f80fd5b50565b5f8135905061242d81612409565b92915050565b5f6020828403121561244857612447612147565b5b5f6124558482850161241f565b91505092915050565b61246781612400565b82525050565b5f6020820190506124805f83018461245e565b92915050565b5f806040838503121561249c5761249b612147565b5b5f6124a9858286016122b1565b92505060206124ba858286016122b1565b9150509250929050565b6124cd81612292565b82525050565b5f6040820190506124e65f830185612320565b6124f360208301846124c4565b9392505050565b5f80604083850312156125105761250f612147565b5b5f61251d8582860161241f565b925050602061252e8582860161235e565b9150509250929050565b5f6020828403121561254d5761254c612147565b5b5f61255a8482850161235e565b91505092915050565b5f6020820190506125765f8301846124c4565b92915050565b5f6bffffffffffffffffffffffff82169050919050565b61259c8161257c565b81146125a6575f80fd5b50565b5f813590506125b781612593565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6125fb8261222a565b810181811067ffffffffffffffff8211171561261a576126196125c5565b5b80604052505050565b5f61262c61213e565b905061263882826125f2565b919050565b5f67ffffffffffffffff821115612657576126566125c5565b5b6126608261222a565b9050602081019050919050565b828183375f83830152505050565b5f61268d6126888461263d565b612623565b9050828152602081018484840111156126a9576126a86125c1565b5b6126b484828561266d565b509392505050565b5f82601f8301126126d0576126cf6125bd565b5b81356126e084826020860161267b565b91505092915050565b5f805f806080858703121561270157612700612147565b5b5f61270e8782880161235e565b945050602061271f878288016122b1565b9350506040612730878288016125a9565b925050606085013567ffffffffffffffff8111156127515761275061214b565b5b61275d878288016126bc565b91505092959194509250565b612772816121cf565b811461277c575f80fd5b50565b5f8135905061278d81612769565b92915050565b5f80604083850312156127a9576127a8612147565b5b5f6127b68582860161235e565b92505060206127c78582860161277f565b9150509250929050565b5f67ffffffffffffffff8211156127eb576127ea6125c5565b5b6127f48261222a565b9050602081019050919050565b5f61281361280e846127d1565b612623565b90508281526020810184848401111561282f5761282e6125c1565b5b61283a84828561266d565b509392505050565b5f82601f830112612856576128556125bd565b5b8135612866848260208601612801565b91505092915050565b5f805f806080858703121561288757612886612147565b5b5f6128948782880161235e565b94505060206128a58782880161235e565b93505060406128b6878288016122b1565b925050606085013567ffffffffffffffff8111156128d7576128d661214b565b5b6128e387828801612842565b91505092959194509250565b5f806040838503121561290557612904612147565b5b5f6129128582860161235e565b92505060206129238582860161235e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061297157607f821691505b6020821081036129845761298361292d565b5b50919050565b5f60608201905061299d5f830186612320565b6129aa60208301856124c4565b6129b76040830184612320565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6129f682612292565b9150612a0183612292565b9250828202612a0f81612292565b91508282048414831517612a2657612a256129bf565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612a6482612292565b9150612a6f83612292565b925082612a7f57612a7e612a2d565b5b828204905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612ae67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612aab565b612af08683612aab565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612b2b612b26612b2184612292565b612b08565b612292565b9050919050565b5f819050919050565b612b4483612b11565b612b58612b5082612b32565b848454612ab7565b825550505050565b5f90565b612b6c612b60565b612b77818484612b3b565b505050565b5b81811015612b9a57612b8f5f82612b64565b600181019050612b7d565b5050565b601f821115612bdf57612bb081612a8a565b612bb984612a9c565b81016020851015612bc8578190505b612bdc612bd485612a9c565b830182612b7c565b50505b505050565b5f82821c905092915050565b5f612bff5f1984600802612be4565b1980831691505092915050565b5f612c178383612bf0565b9150826002028217905092915050565b612c3082612202565b67ffffffffffffffff811115612c4957612c486125c5565b5b612c53825461295a565b612c5e828285612b9e565b5f60209050601f831160018114612c8f575f8415612c7d578287015190505b612c878582612c0c565b865550612cee565b601f198416612c9d86612a8a565b5f5b82811015612cc457848901518255600182019150602085019450602081019050612c9f565b86831015612ce15784890151612cdd601f891682612bf0565b8355505b6001600288020188555050505b505050505050565b5f612d10612d0b612d068461257c565b612b08565b612292565b9050919050565b612d2081612cf6565b82525050565b5f606082019050612d395f8301866124c4565b612d466020830185612d17565b612d5360408301846124c4565b949350505050565b5f604082019050612d6e5f8301856124c4565b612d7b6020830184612320565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f612da682612d82565b612db08185612d8c565b9350612dc081856020860161221c565b612dc98161222a565b840191505092915050565b5f608082019050612de75f830187612320565b612df46020830186612320565b612e0160408301856124c4565b8181036060830152612e138184612d9c565b905095945050505050565b5f81519050612e2c8161217a565b92915050565b5f60208284031215612e4757612e46612147565b5b5f612e5484828501612e1e565b91505092915050565b5f81905092915050565b5f612e7182612202565b612e7b8185612e5d565b9350612e8b81856020860161221c565b80840191505092915050565b5f612ea28285612e67565b9150612eae8284612e67565b91508190509392505050565b5f604082019050612ecd5f830185612320565b612eda602083018461245e565b939250505056fea264697066735822122024431a6c5dfb89fd6145e73e6e90d0ba21c68696243d044fd5642db5d2ece6be64736f6c63430008190033000000000000000000000000006743b10000475622ecf1a618850914c9ad43a70000000000000000000000004844aea12161b93397e76d826ece7c55da35d9af000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000015546573744578706f7274436f6c6c656374696f6e33000000000000000000000000000000000000000000000000000000000000000000000000000000000000045445433300000000000000000000000000000000000000000000000000000000