60806040526001600b5f6101000a81548160ff021916908315150217905550348015610029575f5ffd5b50604051613000380380613000833981810160405281019061004b9190610402565b336040518060400160405280600a81526020017f436f6f6c20436869636f000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f434849434f00000000000000000000000000000000000000000000000000000081525081600290816100c79190610659565b5080600390816100d79190610659565b506100e66101bc60201b60201c565b5f819055506100f96101bc60201b60201c565b6101076101c360201b60201c565b10156101245761012363fed8210f60e01b6101ea60201b60201c565b5b50505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610196575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161018d9190610767565b60405180910390fd5b6101a5816101f260201b60201c565b5080600a90816101b59190610659565b5050610780565b5f5f905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b805f5260045ffd5b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610314826102ce565b810181811067ffffffffffffffff82111715610333576103326102de565b5b80604052505050565b5f6103456102b5565b9050610351828261030b565b919050565b5f67ffffffffffffffff8211156103705761036f6102de565b5b610379826102ce565b9050602081019050919050565b8281835e5f83830152505050565b5f6103a66103a184610356565b61033c565b9050828152602081018484840111156103c2576103c16102ca565b5b6103cd848285610386565b509392505050565b5f82601f8301126103e9576103e86102c6565b5b81516103f9848260208601610394565b91505092915050565b5f60208284031215610417576104166102be565b5b5f82015167ffffffffffffffff811115610434576104336102c2565b5b610440848285016103d5565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061049757607f821691505b6020821081036104aa576104a9610453565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261050c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104d1565b61051686836104d1565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61055a6105556105508461052e565b610537565b61052e565b9050919050565b5f819050919050565b61057383610540565b61058761057f82610561565b8484546104dd565b825550505050565b5f5f905090565b61059e61058f565b6105a981848461056a565b505050565b5b818110156105cc576105c15f82610596565b6001810190506105af565b5050565b601f821115610611576105e2816104b0565b6105eb846104c2565b810160208510156105fa578190505b61060e610606856104c2565b8301826105ae565b50505b505050565b5f82821c905092915050565b5f6106315f1984600802610616565b1980831691505092915050565b5f6106498383610622565b9150826002028217905092915050565b61066282610449565b67ffffffffffffffff81111561067b5761067a6102de565b5b6106858254610480565b6106908282856105d0565b5f60209050601f8311600181146106c1575f84156106af578287015190505b6106b9858261063e565b865550610720565b601f1984166106cf866104b0565b5f5b828110156106f6578489015182556001820191506020850194506020810190506106d1565b86831015610713578489015161070f601f891682610622565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61075182610728565b9050919050565b61076181610747565b82525050565b5f60208201905061077a5f830184610758565b92915050565b6128738061078d5f395ff3fe60806040526004361061013f575f3560e01c806370a08231116100b5578063c87b56dd1161006e578063c87b56dd14610403578063ce11df2b1461043f578063d868a70c14610469578063e985e9c51461047f578063f2fde38b146104bb578063faa9668d146104e35761013f565b806370a0823114610319578063715018a6146103555780638da5cb5b1461036b57806395d89b4114610395578063a22cb465146103bf578063b88d4fde146103e75761013f565b806323b872dd1161010757806323b872dd1461022b57806339ac7979146102475780633e5a3da41461026f57806342842e0e1461029957806355f804b3146102b55780636352211e146102dd5761013f565b806301ffc9a71461014357806306fdde031461017f578063081812fc146101a9578063095ea7b3146101e557806318160ddd14610201575b5f5ffd5b34801561014e575f5ffd5b5061016960048036038101906101649190611a94565b61050d565b6040516101769190611ad9565b60405180910390f35b34801561018a575f5ffd5b5061019361059e565b6040516101a09190611b62565b60405180910390f35b3480156101b4575f5ffd5b506101cf60048036038101906101ca9190611bb5565b61062e565b6040516101dc9190611c1f565b60405180910390f35b6101ff60048036038101906101fa9190611c62565b610687565b005b34801561020c575f5ffd5b50610215610697565b6040516102229190611caf565b60405180910390f35b61024560048036038101906102409190611cc8565b6106e2565b005b348015610252575f5ffd5b5061026d60048036038101906102689190611d4e565b61098d565b005b34801561027a575f5ffd5b50610283610c34565b6040516102909190611ad9565b60405180910390f35b6102b360048036038101906102ae9190611cc8565b610c57565b005b3480156102c0575f5ffd5b506102db60048036038101906102d69190611ea5565b610c76565b005b3480156102e8575f5ffd5b5061030360048036038101906102fe9190611bb5565b610c91565b6040516103109190611c1f565b60405180910390f35b348015610324575f5ffd5b5061033f600480360381019061033a9190611eec565b610ca2565b60405161034c9190611caf565b60405180910390f35b348015610360575f5ffd5b50610369610d36565b005b348015610376575f5ffd5b5061037f610d49565b60405161038c9190611c1f565b60405180910390f35b3480156103a0575f5ffd5b506103a9610d71565b6040516103b69190611b62565b60405180910390f35b3480156103ca575f5ffd5b506103e560048036038101906103e09190611f41565b610e01565b005b61040160048036038101906103fc919061201d565b610f07565b005b34801561040e575f5ffd5b5061042960048036038101906104249190611bb5565b610f58565b6040516104369190611b62565b60405180910390f35b34801561044a575f5ffd5b50610453610fd2565b6040516104609190611ad9565b60405180910390f35b348015610474575f5ffd5b5061047d610fe4565b005b34801561048a575f5ffd5b506104a560048036038101906104a0919061209d565b611016565b6040516104b29190611ad9565b60405180910390f35b3480156104c6575f5ffd5b506104e160048036038101906104dc9190611eec565b6110a4565b005b3480156104ee575f5ffd5b506104f7611128565b60405161050491906120f7565b60405180910390f35b5f6301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056757506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806105975750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6060600280546105ad9061213d565b80601f01602080910402602001604051908101604052809291908181526020018280546105d99061213d565b80156106245780601f106105fb57610100808354040283529160200191610624565b820191905f5260205f20905b81548152906001019060200180831161060757829003601f168201915b5050505050905090565b5f6106388261112d565b61064d5761064c63cf4700e460e01b6111d0565b5b60065f8381526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610693828260016111d8565b5050565b5f6106a0611302565b6001545f54030390507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6106d2611309565b146106df57600854810190505b90565b5f6106ec82611330565b905073ffffffffffffffffffffffffffffffffffffffff8473ffffffffffffffffffffffffffffffffffffffff161693508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146107615761076063a114810060e01b6111d0565b5b5f5f61076c8461143f565b91509150610782818761077d611462565b611469565b6107ad5761079786610792611462565b611016565b6107ac576107ab6359c896be60e01b6111d0565b5b5b6107ba86868660016114ac565b80156107c4575f82555b60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8154600190039190508190555060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f81546001019190508190555061088c856108688888876114b2565b7c0200000000000000000000000000000000000000000000000000000000176114d9565b60045f8681526020019081526020015f20819055505f7c0200000000000000000000000000000000000000000000000000000000841603610908575f6001850190505f60045f8381526020019081526020015f205403610906575f548114610905578360045f8381526020019081526020015f20819055505b5b505b5f73ffffffffffffffffffffffffffffffffffffffff8673ffffffffffffffffffffffffffffffffffffffff161690508481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f5fa45f81036109775761097663ea553b3460e01b6111d0565b5b6109848787876001611503565b50505050505050565b610995610c34565b156109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc906121dd565b60405180910390fd5b600b5f9054906101000a900460ff16610a23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1a9061226b565b60405180910390fd5b5f8160ff1611610a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5f906122d3565b60405180910390fd5b600861ffff168160ff16600960149054906101000a900461ffff16610a8d919061231e565b61ffff161115610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac9906123c3565b60405180910390fd5b60148160ff16600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900461ffff16610b2d919061231e565b61ffff161115610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6990612451565b60405180910390fd5b610b7f338260ff16611509565b8060ff16600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282829054906101000a900461ffff16610bdb919061231e565b92506101000a81548161ffff021916908361ffff1602179055508060ff16600960148282829054906101000a900461ffff16610c17919061231e565b92506101000a81548161ffff021916908361ffff16021790555050565b5f600861ffff16600960149054906101000a900461ffff1661ffff161015905090565b610c7183838360405180602001604052805f815250610f07565b505050565b610c7e61167d565b80600a9081610c8d919061260f565b5050565b5f610c9b82611330565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ce757610ce6638f4eb60460e01b6111d0565b5b67ffffffffffffffff60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054169050919050565b610d3e61167d565b610d475f611704565b565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610d809061213d565b80601f0160208091040260200160405190810160405280929190818152602001828054610dac9061213d565b8015610df75780601f10610dce57610100808354040283529160200191610df7565b820191905f5260205f20905b815481529060010190602001808311610dda57829003601f168201915b5050505050905090565b8060075f610e0d611462565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610eb6611462565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610efb9190611ad9565b60405180910390a35050565b610f128484846106e2565b5f8373ffffffffffffffffffffffffffffffffffffffff163b14610f5257610f3c848484846117c7565b610f5157610f5063d1a57ed660e01b6111d0565b5b5b50505050565b6060610f638261112d565b610f7857610f7763a14c4b5060e01b6111d0565b5b5f610f816118f1565b90505f815103610f9f5760405180602001604052805f815250610fca565b80610fa984611981565b604051602001610fba929190612718565b6040516020818303038152906040525b915050919050565b600b5f9054906101000a900460ff1681565b610fec61167d565b600b5f9054906101000a900460ff1615600b5f6101000a81548160ff021916908315150217905550565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b6110ac61167d565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361111c575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016111139190611c1f565b60405180910390fd5b61112581611704565b50565b600881565b5f81611137611302565b116111ca57611144611309565b82111561116c5761116560045f8481526020019081526020015f20546119d0565b90506111cb565b5f548210156111c9575f5b5f60045f8581526020019081526020015f2054915081036111a3578261119c9061273b565b9250611177565b5f7c01000000000000000000000000000000000000000000000000000000008216149150505b5b5b919050565b805f5260045ffd5b5f6111e283610c91565b905081801561122457508073ffffffffffffffffffffffffffffffffffffffff1661120b611462565b73ffffffffffffffffffffffffffffffffffffffff1614155b156112505761123a81611235611462565b611016565b61124f5761124e63cfb3b94260e01b6111d0565b5b5b8360065f8581526020019081526020015f205f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550828473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a450505050565b5f5f905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b5f8161133a611302565b116114295760045f8381526020019081526020015f2054905061135b611309565b8211156113805761136b816119d0565b61143a5761137f63df2d9b4260e01b6111d0565b5b5f8103611401575f5482106113a05761139f63df2d9b4260e01b6111d0565b5b5b60045f836001900393508381526020019081526020015f205490505f8103156113fc575f7c01000000000000000000000000000000000000000000000000000000008216031561143a576113fb63df2d9b4260e01b6111d0565b5b6113a1565b5f7c01000000000000000000000000000000000000000000000000000000008216031561143a575b61143963df2d9b4260e01b6111d0565b5b919050565b5f5f5f60065f8581526020019081526020015f2090508092508254915050915091565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b5f5f60e883901c905060e86114c8868684611a10565b62ffffff16901b9150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b5f5f5490505f82036115265761152563b562e8dd60e01b6111d0565b5b6115325f8483856114ac565b611550836115415f865f6114b2565b61154a85611a18565b176114d9565b60045f8381526020019081526020015f2081905550600160406001901b17820260055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505f73ffffffffffffffffffffffffffffffffffffffff8473ffffffffffffffffffffffffffffffffffffffff161690505f810361160157611600632e07630060e01b6111d0565b5b5f83830190505f839050611613611309565b60018303111561162e5761162d6381647e3a60e01b6111d0565b5b5b80835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f5fa481816001019150810361162f57815f819055505050506116785f848385611503565b505050565b611685611a27565b73ffffffffffffffffffffffffffffffffffffffff166116a3610d49565b73ffffffffffffffffffffffffffffffffffffffff1614611702576116c6611a27565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016116f99190611c1f565b60405180910390fd5b565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8373ffffffffffffffffffffffffffffffffffffffff1663150b7a026117ec611462565b8786866040518563ffffffff1660e01b815260040161180e94939291906127b4565b6020604051808303815f875af192505050801561184957506040513d601f19601f820116820180604052508101906118469190612812565b60015b61189e573d805f8114611877576040519150601f19603f3d011682016040523d82523d5f602084013e61187c565b606091505b505f8151036118965761189563d1a57ed660e01b6111d0565b5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600a80546119009061213d565b80601f016020809104026020016040519081016040528092919081815260200182805461192c9061213d565b80156119775780601f1061194e57610100808354040283529160200191611977565b820191905f5260205f20905b81548152906001019060200180831161195a57829003601f168201915b5050505050905090565b606060a060405101806040526020810391505f825281835b6001156119bb57600184039350600a81066030018453600a8104905080611999575b50828103602084039350808452505050919050565b5f7c0100000000000000000000000000000000000000000000000000000000821673ffffffffffffffffffffffffffffffffffffffff8316119050919050565b5f9392505050565b5f6001821460e11b9050919050565b5f33905090565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611a7381611a3f565b8114611a7d575f5ffd5b50565b5f81359050611a8e81611a6a565b92915050565b5f60208284031215611aa957611aa8611a37565b5b5f611ab684828501611a80565b91505092915050565b5f8115159050919050565b611ad381611abf565b82525050565b5f602082019050611aec5f830184611aca565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611b3482611af2565b611b3e8185611afc565b9350611b4e818560208601611b0c565b611b5781611b1a565b840191505092915050565b5f6020820190508181035f830152611b7a8184611b2a565b905092915050565b5f819050919050565b611b9481611b82565b8114611b9e575f5ffd5b50565b5f81359050611baf81611b8b565b92915050565b5f60208284031215611bca57611bc9611a37565b5b5f611bd784828501611ba1565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611c0982611be0565b9050919050565b611c1981611bff565b82525050565b5f602082019050611c325f830184611c10565b92915050565b611c4181611bff565b8114611c4b575f5ffd5b50565b5f81359050611c5c81611c38565b92915050565b5f5f60408385031215611c7857611c77611a37565b5b5f611c8585828601611c4e565b9250506020611c9685828601611ba1565b9150509250929050565b611ca981611b82565b82525050565b5f602082019050611cc25f830184611ca0565b92915050565b5f5f5f60608486031215611cdf57611cde611a37565b5b5f611cec86828701611c4e565b9350506020611cfd86828701611c4e565b9250506040611d0e86828701611ba1565b9150509250925092565b5f60ff82169050919050565b611d2d81611d18565b8114611d37575f5ffd5b50565b5f81359050611d4881611d24565b92915050565b5f60208284031215611d6357611d62611a37565b5b5f611d7084828501611d3a565b91505092915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611db782611b1a565b810181811067ffffffffffffffff82111715611dd657611dd5611d81565b5b80604052505050565b5f611de8611a2e565b9050611df48282611dae565b919050565b5f67ffffffffffffffff821115611e1357611e12611d81565b5b611e1c82611b1a565b9050602081019050919050565b828183375f83830152505050565b5f611e49611e4484611df9565b611ddf565b905082815260208101848484011115611e6557611e64611d7d565b5b611e70848285611e29565b509392505050565b5f82601f830112611e8c57611e8b611d79565b5b8135611e9c848260208601611e37565b91505092915050565b5f60208284031215611eba57611eb9611a37565b5b5f82013567ffffffffffffffff811115611ed757611ed6611a3b565b5b611ee384828501611e78565b91505092915050565b5f60208284031215611f0157611f00611a37565b5b5f611f0e84828501611c4e565b91505092915050565b611f2081611abf565b8114611f2a575f5ffd5b50565b5f81359050611f3b81611f17565b92915050565b5f5f60408385031215611f5757611f56611a37565b5b5f611f6485828601611c4e565b9250506020611f7585828601611f2d565b9150509250929050565b5f67ffffffffffffffff821115611f9957611f98611d81565b5b611fa282611b1a565b9050602081019050919050565b5f611fc1611fbc84611f7f565b611ddf565b905082815260208101848484011115611fdd57611fdc611d7d565b5b611fe8848285611e29565b509392505050565b5f82601f83011261200457612003611d79565b5b8135612014848260208601611faf565b91505092915050565b5f5f5f5f6080858703121561203557612034611a37565b5b5f61204287828801611c4e565b945050602061205387828801611c4e565b935050604061206487828801611ba1565b925050606085013567ffffffffffffffff81111561208557612084611a3b565b5b61209187828801611ff0565b91505092959194509250565b5f5f604083850312156120b3576120b2611a37565b5b5f6120c085828601611c4e565b92505060206120d185828601611c4e565b9150509250929050565b5f61ffff82169050919050565b6120f1816120db565b82525050565b5f60208201905061210a5f8301846120e8565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061215457607f821691505b60208210810361216757612166612110565b5b50919050565b7f436f6f6c204d6f67676965732061726520536f6c64204f75742120416c6c20685f8201527f617665206265656e2061646f7074656400000000000000000000000000000000602082015250565b5f6121c7603083611afc565b91506121d28261216d565b604082019050919050565b5f6020820190508181035f8301526121f4816121bb565b9050919050565b7f41646f7074696f6e206d7573742062652061637469766520746f2061646f70745f8201527f2061204d6f676779000000000000000000000000000000000000000000000000602082015250565b5f612255602883611afc565b9150612260826121fb565b604082019050919050565b5f6020820190508181035f83015261228281612249565b9050919050565b7f596f7520617265206e6f742061646f7074696e6720616e79204d6f67677921005f82015250565b5f6122bd601f83611afc565b91506122c882612289565b602082019050919050565b5f6020820190508181035f8301526122ea816122b1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612328826120db565b9150612333836120db565b9250828201905061ffff81111561234d5761234c6122f1565b5b92915050565b7f45786365656473206d6178696d756d206e756d626572206f66204d6f676769655f8201527f7320746861742063616e2062652061646f707465640000000000000000000000602082015250565b5f6123ad603583611afc565b91506123b882612353565b604082019050919050565b5f6020820190508181035f8301526123da816123a1565b9050919050565b7f596f752063616e2061646f70742061206d6178696d756d206f66203230204d6f5f8201527f6767696573000000000000000000000000000000000000000000000000000000602082015250565b5f61243b602583611afc565b9150612446826123e1565b604082019050919050565b5f6020820190508181035f8301526124688161242f565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026124cb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612490565b6124d58683612490565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61251061250b61250684611b82565b6124ed565b611b82565b9050919050565b5f819050919050565b612529836124f6565b61253d61253582612517565b84845461249c565b825550505050565b5f5f905090565b612554612545565b61255f818484612520565b505050565b5b81811015612582576125775f8261254c565b600181019050612565565b5050565b601f8211156125c7576125988161246f565b6125a184612481565b810160208510156125b0578190505b6125c46125bc85612481565b830182612564565b50505b505050565b5f82821c905092915050565b5f6125e75f19846008026125cc565b1980831691505092915050565b5f6125ff83836125d8565b9150826002028217905092915050565b61261882611af2565b67ffffffffffffffff81111561263157612630611d81565b5b61263b825461213d565b612646828285612586565b5f60209050601f831160018114612677575f8415612665578287015190505b61266f85826125f4565b8655506126d6565b601f1984166126858661246f565b5f5b828110156126ac57848901518255600182019150602085019450602081019050612687565b868310156126c957848901516126c5601f8916826125d8565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f6126f282611af2565b6126fc81856126de565b935061270c818560208601611b0c565b80840191505092915050565b5f61272382856126e8565b915061272f82846126e8565b91508190509392505050565b5f61274582611b82565b91505f8203612757576127566122f1565b5b600182039050919050565b5f81519050919050565b5f82825260208201905092915050565b5f61278682612762565b612790818561276c565b93506127a0818560208601611b0c565b6127a981611b1a565b840191505092915050565b5f6080820190506127c75f830187611c10565b6127d46020830186611c10565b6127e16040830185611ca0565b81810360608301526127f3818461277c565b905095945050505050565b5f8151905061280c81611a6a565b92915050565b5f6020828403121561282757612826611a37565b5b5f612834848285016127fe565b9150509291505056fea26469706673582212206e54d7623c7eb552aaab972f11fbcb20047223fb89696890d36990f9f1a8a00164736f6c634300081c0033000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000033030300000000000000000000000000000000000000000000000000000000000