608060405234801561000f575f80fd5b5060405180602001604052805f81525061002e8161003460201b60201c565b50610350565b80600290816100439190610281565b5050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100c257607f821691505b6020821081036100d5576100d461007e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826100fc565b61014186836100fc565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61018561018061017b84610159565b610162565b610159565b9050919050565b5f819050919050565b61019e8361016b565b6101b26101aa8261018c565b848454610108565b825550505050565b5f90565b6101c66101ba565b6101d1818484610195565b505050565b5b818110156101f4576101e95f826101be565b6001810190506101d7565b5050565b601f8211156102395761020a816100db565b610213846100ed565b81016020851015610222578190505b61023661022e856100ed565b8301826101d6565b50505b505050565b5f82821c905092915050565b5f6102595f198460080261023e565b1980831691505092915050565b5f610271838361024a565b9150826002028217905092915050565b61028a82610047565b67ffffffffffffffff8111156102a3576102a2610051565b5b6102ad82546100ab565b6102b88282856101f8565b5f60209050601f8311600181146102e9575f84156102d7578287015190505b6102e18582610266565b865550610348565b601f1984166102f7866100db565b5f5b8281101561031e578489015182556001820191506020850194506020810190506102f9565b8683101561033b5784890151610337601f89168261024a565b8355505b6001600288020188555050505b505050505050565b612c498061035d5f395ff3fe608060405234801561000f575f80fd5b5060043610610134575f3560e01c80637f574f88116100b6578063bd85b0391161007a578063bd85b03914610394578063d48e638a146103c4578063e7619fad146103f4578063e985e9c514610412578063ef358b4a14610442578063f242432a1461047257610134565b80637f574f88146102cc578063a22cb465146102fc578063a30b4db914610318578063b2a999c714610334578063b6d36af61461036457610134565b80632ff57da8116100fd5780632ff57da8146102005780634e1273f414610230578063657d1931146102605780637d6aab0a146102905780637e1c0c09146102ae57610134565b8062fdd58e1461013857806301ffc9a71461016857806305751204146101985780630e89341c146101b45780632eb2c2d6146101e4575b5f80fd5b610152600480360381019061014d9190611c51565b61048e565b60405161015f9190611c9e565b60405180910390f35b610182600480360381019061017d9190611d0c565b6104e3565b60405161018f9190611d51565b60405180910390f35b6101b260048036038101906101ad9190611ea6565b6104f4565b005b6101ce60048036038101906101c99190611f00565b610502565b6040516101db9190611f8b565b60405180910390f35b6101fe60048036038101906101f9919061210d565b6105a3565b005b61021a600480360381019061021591906121d8565b61064a565b6040516102279190611c9e565b60405180910390f35b61024a600480360381019061024591906122c3565b610697565b60405161025791906123f0565b60405180910390f35b61027a600480360381019061027591906121d8565b61079e565b60405161028791906123f0565b60405180910390f35b610298610846565b6040516102a59190611c9e565b60405180910390f35b6102b661084c565b6040516102c39190611c9e565b60405180910390f35b6102e660048036038101906102e19190611c51565b61085c565b6040516102f39190611c9e565b60405180910390f35b6103166004803603810190610311919061243a565b6108b4565b005b610332600480360381019061032d9190611f00565b6108ca565b005b61034e60048036038101906103499190611f00565b61091c565b60405161035b9190612487565b60405180910390f35b61037e60048036038101906103799190611f00565b61094c565b60405161038b9190611c9e565b60405180910390f35b6103ae60048036038101906103a99190611f00565b610968565b6040516103bb9190611c9e565b60405180910390f35b6103de60048036038101906103d99190611f00565b610982565b6040516103eb9190612487565b60405180910390f35b6103fc6109bb565b60405161040991906123f0565b60405180910390f35b61042c600480360381019061042791906124a0565b610a61565b6040516104399190611d51565b60405180910390f35b61045c600480360381019061045791906124de565b610aef565b6040516104699190611c9e565b60405180910390f35b61048c60048036038101906104879190612566565b610cb2565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f6104ed82610d59565b9050919050565b6104fe8282610e3a565b5050565b606060055f8381526020019081526020015f20805461052090612626565b80601f016020809104026020016040519081016040528092919081815260200182805461054c90612626565b80156105975780601f1061056e57610100808354040283529160200191610597565b820191905f5260205f20905b81548152906001019060200180831161057a57829003601f168201915b50505050509050919050565b5f6105ac610e5d565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156105f157506105ef8682610a61565b155b156106355780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161062c929190612656565b60405180910390fd5b6106428686868686610e64565b505050505050565b5f61069060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20610f58565b9050919050565b606081518351146106e357815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106da92919061267d565b60405180910390fd5b5f835167ffffffffffffffff8111156106ff576106fe611d82565b5b60405190808252806020026020018201604052801561072d5781602001602082028036833780820191505090505b5090505f5b8451811015610793576107696107518287610f6b90919063ffffffff16565b6107648387610f7e90919063ffffffff16565b61048e565b82828151811061077c5761077b6126a4565b5b602002602001018181525050806001019050610732565b508091505092915050565b60605f6107aa8361064a565b90505f8167ffffffffffffffff8111156107c7576107c6611d82565b5b6040519080825280602002602001820160405280156107f55781602001602082028036833780820191505090505b5090505f5b8281101561083b575f61080d868361085c565b905080838381518110610823576108226126a4565b5b602002602001018181525050508060010190506107fa565b508092505050919050565b60035481565b5f6108576008610f58565b905090565b5f6108ac8260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20610f9190919063ffffffff16565b905092915050565b6108c66108bf610e5d565b8383610fa8565b5050565b3360075f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6007602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610961826008610f9190919063ffffffff16565b9050919050565b5f60045f8381526020019081526020015f20549050919050565b5f60075f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60605f6109c86008610f58565b90505f8167ffffffffffffffff8111156109e5576109e4611d82565b5b604051908082528060200260200182016040528015610a135781602001602082028036833780820191505090505b5090505f5b82811015610a58575f610a2a8261094c565b905080838381518110610a4057610a3f6126a4565b5b60200260200101818152505050806001019050610a18565b50809250505090565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f8060045f60035481526020019081526020015f205414610b0e575f80fd5b60028410158015610b215750610bb88411155b610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b579061271b565b60405180910390fd5b610b6e336003548686611111565b610b7a60035483610e3a565b8360045f60035481526020019081526020015f205f828254610b9c9190612766565b92505081905550610bf460035460065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206111a690919063ffffffff16565b50610c0b60035460086111a690919063ffffffff16565b50610c14610e5d565b60075f60035481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003547ff00d28232b285f24f2e38415deb2ceb31069e70d4505838b3911b4f02058502e60405160405180910390a260035f815480929190610ca590612799565b9190505590509392505050565b5f610cbb610e5d565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610d005750610cfe8682610a61565b155b15610d445780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610d3b929190612656565b60405180910390fd5b610d5186868686866111bd565b505050505050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610e2357507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610e335750610e32826112c3565b5b9050919050565b8060055f8481526020019081526020015f209081610e58919061297d565b505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ed4575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610ecb9190612487565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610f44575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610f3b9190612487565b60405180910390fd5b610f51858585858561132c565b5050505050565b5f610f64825f016113d8565b9050919050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f610f9e835f01836113e7565b5f1c905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611018575f6040517fced3e10000000000000000000000000000000000000000000000000000000000815260040161100f9190612487565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111049190611d51565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611181575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111789190612487565b60405180910390fd5b5f8061118d858561140e565b9150915061119e5f8784848761132c565b505050505050565b5f6111b5835f01835f1b61143e565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361122d575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016112249190612487565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361129d575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016112949190612487565b60405180910390fd5b5f806112a9858561140e565b915091506112ba878784848761132c565b50505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611338858585856114a5565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146113d1575f611374610e5d565b905060018451036113c0575f6113935f86610f7e90919063ffffffff16565b90505f6113a95f86610f7e90919063ffffffff16565b90506113b9838989858589611835565b50506113cf565b6113ce8187878787876119e4565b5b505b5050505050565b5f815f01805490509050919050565b5f825f0182815481106113fd576113fc6126a4565b5b905f5260205f200154905092915050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b5f6114498383611b93565b61149b57825f0182908060018154018082558091505060019003905f5260205f20015f9091909190915055825f0180549050836001015f8481526020019081526020015f20819055506001905061149f565b5f90505b92915050565b80518251146114ef57815181516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016114e692919061267d565b60405180910390fd5b5f6114f8610e5d565b90505f5b83518110156116f4575f6115198286610f7e90919063ffffffff16565b90505f61152f8386610f7e90919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611652575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156115fe57888183856040517f03dee4c50000000000000000000000000000000000000000000000000000000081526004016115f59493929190612a4c565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146116e757805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546116df9190612766565b925050819055505b50508060010190506114fc565b5060018351036117af575f6117125f85610f7e90919063ffffffff16565b90505f6117285f85610f7e90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516117a092919061267d565b60405180910390a4505061182e565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611825929190612a8f565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156119dc578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611895959493929190612b16565b6020604051808303815f875af19250505080156118d057506040513d601f19601f820116820180604052508101906118cd9190612b82565b60015b611951573d805f81146118fe576040519150601f19603f3d011682016040523d82523d5f602084013e611903565b606091505b505f81510361194957846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016119409190612487565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146119da57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016119d19190612487565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115611b8b578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611a44959493929190612bad565b6020604051808303815f875af1925050508015611a7f57506040513d601f19601f82011682018060405250810190611a7c9190612b82565b60015b611b00573d805f8114611aad576040519150601f19603f3d011682016040523d82523d5f602084013e611ab2565b606091505b505f815103611af857846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611aef9190612487565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611b8957846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611b809190612487565b60405180910390fd5b505b505050505050565b5f80836001015f8481526020019081526020015f20541415905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611bed82611bc4565b9050919050565b611bfd81611be3565b8114611c07575f80fd5b50565b5f81359050611c1881611bf4565b92915050565b5f819050919050565b611c3081611c1e565b8114611c3a575f80fd5b50565b5f81359050611c4b81611c27565b92915050565b5f8060408385031215611c6757611c66611bbc565b5b5f611c7485828601611c0a565b9250506020611c8585828601611c3d565b9150509250929050565b611c9881611c1e565b82525050565b5f602082019050611cb15f830184611c8f565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611ceb81611cb7565b8114611cf5575f80fd5b50565b5f81359050611d0681611ce2565b92915050565b5f60208284031215611d2157611d20611bbc565b5b5f611d2e84828501611cf8565b91505092915050565b5f8115159050919050565b611d4b81611d37565b82525050565b5f602082019050611d645f830184611d42565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611db882611d72565b810181811067ffffffffffffffff82111715611dd757611dd6611d82565b5b80604052505050565b5f611de9611bb3565b9050611df58282611daf565b919050565b5f67ffffffffffffffff821115611e1457611e13611d82565b5b611e1d82611d72565b9050602081019050919050565b828183375f83830152505050565b5f611e4a611e4584611dfa565b611de0565b905082815260208101848484011115611e6657611e65611d6e565b5b611e71848285611e2a565b509392505050565b5f82601f830112611e8d57611e8c611d6a565b5b8135611e9d848260208601611e38565b91505092915050565b5f8060408385031215611ebc57611ebb611bbc565b5b5f611ec985828601611c3d565b925050602083013567ffffffffffffffff811115611eea57611ee9611bc0565b5b611ef685828601611e79565b9150509250929050565b5f60208284031215611f1557611f14611bbc565b5b5f611f2284828501611c3d565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f611f5d82611f2b565b611f678185611f35565b9350611f77818560208601611f45565b611f8081611d72565b840191505092915050565b5f6020820190508181035f830152611fa38184611f53565b905092915050565b5f67ffffffffffffffff821115611fc557611fc4611d82565b5b602082029050602081019050919050565b5f80fd5b5f611fec611fe784611fab565b611de0565b9050808382526020820190506020840283018581111561200f5761200e611fd6565b5b835b8181101561203857806120248882611c3d565b845260208401935050602081019050612011565b5050509392505050565b5f82601f83011261205657612055611d6a565b5b8135612066848260208601611fda565b91505092915050565b5f67ffffffffffffffff82111561208957612088611d82565b5b61209282611d72565b9050602081019050919050565b5f6120b16120ac8461206f565b611de0565b9050828152602081018484840111156120cd576120cc611d6e565b5b6120d8848285611e2a565b509392505050565b5f82601f8301126120f4576120f3611d6a565b5b813561210484826020860161209f565b91505092915050565b5f805f805f60a0868803121561212657612125611bbc565b5b5f61213388828901611c0a565b955050602061214488828901611c0a565b945050604086013567ffffffffffffffff81111561216557612164611bc0565b5b61217188828901612042565b935050606086013567ffffffffffffffff81111561219257612191611bc0565b5b61219e88828901612042565b925050608086013567ffffffffffffffff8111156121bf576121be611bc0565b5b6121cb888289016120e0565b9150509295509295909350565b5f602082840312156121ed576121ec611bbc565b5b5f6121fa84828501611c0a565b91505092915050565b5f67ffffffffffffffff82111561221d5761221c611d82565b5b602082029050602081019050919050565b5f61224061223b84612203565b611de0565b9050808382526020820190506020840283018581111561226357612262611fd6565b5b835b8181101561228c57806122788882611c0a565b845260208401935050602081019050612265565b5050509392505050565b5f82601f8301126122aa576122a9611d6a565b5b81356122ba84826020860161222e565b91505092915050565b5f80604083850312156122d9576122d8611bbc565b5b5f83013567ffffffffffffffff8111156122f6576122f5611bc0565b5b61230285828601612296565b925050602083013567ffffffffffffffff81111561232357612322611bc0565b5b61232f85828601612042565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61236b81611c1e565b82525050565b5f61237c8383612362565b60208301905092915050565b5f602082019050919050565b5f61239e82612339565b6123a88185612343565b93506123b383612353565b805f5b838110156123e35781516123ca8882612371565b97506123d583612388565b9250506001810190506123b6565b5085935050505092915050565b5f6020820190508181035f8301526124088184612394565b905092915050565b61241981611d37565b8114612423575f80fd5b50565b5f8135905061243481612410565b92915050565b5f80604083850312156124505761244f611bbc565b5b5f61245d85828601611c0a565b925050602061246e85828601612426565b9150509250929050565b61248181611be3565b82525050565b5f60208201905061249a5f830184612478565b92915050565b5f80604083850312156124b6576124b5611bbc565b5b5f6124c385828601611c0a565b92505060206124d485828601611c0a565b9150509250929050565b5f805f606084860312156124f5576124f4611bbc565b5b5f61250286828701611c3d565b935050602084013567ffffffffffffffff81111561252357612522611bc0565b5b61252f868287016120e0565b925050604084013567ffffffffffffffff8111156125505761254f611bc0565b5b61255c86828701611e79565b9150509250925092565b5f805f805f60a0868803121561257f5761257e611bbc565b5b5f61258c88828901611c0a565b955050602061259d88828901611c0a565b94505060406125ae88828901611c3d565b93505060606125bf88828901611c3d565b925050608086013567ffffffffffffffff8111156125e0576125df611bc0565b5b6125ec888289016120e0565b9150509295509295909350565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061263d57607f821691505b6020821081036126505761264f6125f9565b5b50919050565b5f6040820190506126695f830185612478565b6126766020830184612478565b9392505050565b5f6040820190506126905f830185611c8f565b61269d6020830184611c8f565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f616d6f756e7420627477203220616e64203330303000000000000000000000005f82015250565b5f612705601583611f35565b9150612710826126d1565b602082019050919050565b5f6020820190508181035f830152612732816126f9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61277082611c1e565b915061277b83611c1e565b925082820190508082111561279357612792612739565b5b92915050565b5f6127a382611c1e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127d5576127d4612739565b5b600182019050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261283c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612801565b6128468683612801565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61288161287c61287784611c1e565b61285e565b611c1e565b9050919050565b5f819050919050565b61289a83612867565b6128ae6128a682612888565b84845461280d565b825550505050565b5f90565b6128c26128b6565b6128cd818484612891565b505050565b5b818110156128f0576128e55f826128ba565b6001810190506128d3565b5050565b601f82111561293557612906816127e0565b61290f846127f2565b8101602085101561291e578190505b61293261292a856127f2565b8301826128d2565b50505b505050565b5f82821c905092915050565b5f6129555f198460080261293a565b1980831691505092915050565b5f61296d8383612946565b9150826002028217905092915050565b61298682611f2b565b67ffffffffffffffff81111561299f5761299e611d82565b5b6129a98254612626565b6129b48282856128f4565b5f60209050601f8311600181146129e5575f84156129d3578287015190505b6129dd8582612962565b865550612a44565b601f1984166129f3866127e0565b5f5b82811015612a1a578489015182556001820191506020850194506020810190506129f5565b86831015612a375784890151612a33601f891682612946565b8355505b6001600288020188555050505b505050505050565b5f608082019050612a5f5f830187612478565b612a6c6020830186611c8f565b612a796040830185611c8f565b612a866060830184611c8f565b95945050505050565b5f6040820190508181035f830152612aa78185612394565b90508181036020830152612abb8184612394565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f612ae882612ac4565b612af28185612ace565b9350612b02818560208601611f45565b612b0b81611d72565b840191505092915050565b5f60a082019050612b295f830188612478565b612b366020830187612478565b612b436040830186611c8f565b612b506060830185611c8f565b8181036080830152612b628184612ade565b90509695505050505050565b5f81519050612b7c81611ce2565b92915050565b5f60208284031215612b9757612b96611bbc565b5b5f612ba484828501612b6e565b91505092915050565b5f60a082019050612bc05f830188612478565b612bcd6020830187612478565b8181036040830152612bdf8186612394565b90508181036060830152612bf38185612394565b90508181036080830152612c078184612ade565b9050969550505050505056fea26469706673582212204ad4ea9cf4d2786ab6f4be281bb3a4218239f0512f5d0d26f3a05cd27383440964736f6c634300081a0033