60806040526115b36009556003600a55600a600b556104b0600c556003600d55600a600e556605543df729c000600f553480156200003c57600080fd5b506040518060400160405280600c81526020017f4149426c6f636b636861696e00000000000000000000000000000000000000008152506040518060400160405280600381526020017f424f4300000000000000000000000000000000000000000000000000000000008152508160029081620000ba9190620006d6565b508060039081620000cc9190620006d6565b50620000dd6200011e60201b60201c565b600081905550505062000105620000f96200012760201b60201c565b6200012f60201b60201c565b62000118336064620001f560201b60201c565b620007bd565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000805490506000820362000236576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6200024b6000848385620003dc60201b60201c565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620002da83620002bc6000866000620003e260201b60201c565b620002cd856200041260201b60201c565b176200042260201b60201c565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b8181146200037d57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a460018101905062000340565b5060008203620003b9576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000819055505050620003d760008483856200044d60201b60201c565b505050565b50505050565b60008060e883901c905060e8620004018686846200045360201b60201c565b62ffffff16901b9150509392505050565b60006001821460e11b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b60009392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620004de57607f821691505b602082108103620004f457620004f362000496565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200055e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200051f565b6200056a86836200051f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005b7620005b1620005ab8462000582565b6200058c565b62000582565b9050919050565b6000819050919050565b620005d38362000596565b620005eb620005e282620005be565b8484546200052c565b825550505050565b600090565b62000602620005f3565b6200060f818484620005c8565b505050565b5b8181101562000637576200062b600082620005f8565b60018101905062000615565b5050565b601f82111562000686576200065081620004fa565b6200065b846200050f565b810160208510156200066b578190505b620006836200067a856200050f565b83018262000614565b50505b505050565b600082821c905092915050565b6000620006ab600019846008026200068b565b1980831691505092915050565b6000620006c6838362000698565b9150826002028217905092915050565b620006e1826200045c565b67ffffffffffffffff811115620006fd57620006fc62000467565b5b620007098254620004c5565b620007168282856200063b565b600060209050601f8311600181146200074e576000841562000739578287015190505b620007458582620006b8565b865550620007b5565b601f1984166200075e86620004fa565b60005b82811015620007885784890151825560018201915060208501945060208101905062000761565b86831015620007a85784890151620007a4601f89168262000698565b8355505b6001600288020188555050505b505050505050565b61403980620007cd6000396000f3fe6080604052600436106101cd5760003560e01c806395d89b41116100f7578063d5abeb0111610095578063efbd73f411610064578063efbd73f41461064e578063f2fde38b14610677578063f4a0a528146106a0578063f968adbe146106c9576101cd565b8063d5abeb0114610580578063dc33e681146105ab578063e7db8fb0146105e8578063e985e9c514610611576101cd565b8063a7027357116100d1578063a7027357146104d1578063b88d4fde146104fc578063c002d23d14610518578063c87b56dd14610543576101cd565b806395d89b4114610461578063a0712d681461048c578063a22cb465146104a8576101cd565b806357ea89b61161016f578063715018a61161013e578063715018a6146103b75780637ab045df146103ce5780638868b9ff1461040b5780638da5cb5b14610436576101cd565b806357ea89b6146102f65780636352211e146103005780636dcee4ca1461033d57806370a082311461037a576101cd565b8063095ea7b3116101ab578063095ea7b31461027757806318160ddd1461029357806323b872dd146102be57806342842e0e146102da576101cd565b806301ffc9a7146101d257806306fdde031461020f578063081812fc1461023a575b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f4919061256d565b6106f4565b60405161020691906125b5565b60405180910390f35b34801561021b57600080fd5b50610224610786565b6040516102319190612660565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c91906126b8565b610818565b60405161026e9190612726565b60405180910390f35b610291600480360381019061028c919061276d565b610897565b005b34801561029f57600080fd5b506102a86109db565b6040516102b591906127bc565b60405180910390f35b6102d860048036038101906102d391906127d7565b6109f2565b005b6102f460048036038101906102ef91906127d7565b610d14565b005b6102fe610d34565b005b34801561030c57600080fd5b50610327600480360381019061032291906126b8565b610d8c565b6040516103349190612726565b60405180910390f35b34801561034957600080fd5b50610364600480360381019061035f91906126b8565b610d9e565b6040516103719190612660565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c919061282a565b61106b565b6040516103ae91906127bc565b60405180910390f35b3480156103c357600080fd5b506103cc611123565b005b3480156103da57600080fd5b506103f560048036038101906103f0919061282a565b611137565b60405161040291906127bc565b60405180910390f35b34801561041757600080fd5b5061042061114f565b60405161042d91906127bc565b60405180910390f35b34801561044257600080fd5b5061044b611185565b6040516104589190612726565b60405180910390f35b34801561046d57600080fd5b506104766111af565b6040516104839190612660565b60405180910390f35b6104a660048036038101906104a191906126b8565b611241565b005b3480156104b457600080fd5b506104cf60048036038101906104ca9190612883565b611585565b005b3480156104dd57600080fd5b506104e6611690565b6040516104f391906127bc565b60405180910390f35b610516600480360381019061051191906129f8565b611696565b005b34801561052457600080fd5b5061052d611709565b60405161053a91906127bc565b60405180910390f35b34801561054f57600080fd5b5061056a600480360381019061056591906126b8565b61170f565b6040516105779190612660565b60405180910390f35b34801561058c57600080fd5b506105956117dd565b6040516105a291906127bc565b60405180910390f35b3480156105b757600080fd5b506105d260048036038101906105cd919061282a565b6117e3565b6040516105df91906127bc565b60405180910390f35b3480156105f457600080fd5b5061060f600480360381019061060a91906126b8565b6117fb565b005b34801561061d57600080fd5b5061063860048036038101906106339190612a7b565b61180d565b60405161064591906125b5565b60405180910390f35b34801561065a57600080fd5b5061067560048036038101906106709190612abb565b6118a1565b005b34801561068357600080fd5b5061069e6004803603810190610699919061282a565b61190e565b005b3480156106ac57600080fd5b506106c760048036038101906106c291906126b8565b611991565b005b3480156106d557600080fd5b506106de6119a3565b6040516106eb91906127bc565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061074f57506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061077f5750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606002805461079590612b2a565b80601f01602080910402602001604051908101604052809291908181526020018280546107c190612b2a565b801561080e5780601f106107e35761010080835404028352916020019161080e565b820191906000526020600020905b8154815290600101906020018083116107f157829003601f168201915b5050505050905090565b6000610823826119a9565b610859576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006108a282610d8c565b90508073ffffffffffffffffffffffffffffffffffffffff166108c3611a08565b73ffffffffffffffffffffffffffffffffffffffff1614610926576108ef816108ea611a08565b61180d565b610925576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60006109e5611a10565b6001546000540303905090565b60006109fd82611a19565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a64576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610a7084611ae5565b91509150610a868187610a81611a08565b611b0c565b610ad257610a9b86610a96611a08565b61180d565b610ad1576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610b38576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b458686866001611b50565b8015610b5057600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610c1e85610bfa888887611b56565b7c020000000000000000000000000000000000000000000000000000000017611b7e565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610ca45760006001850190506000600460008381526020019081526020016000205403610ca2576000548114610ca1578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610d0c8686866001611ba9565b505050505050565b610d2f83838360405180602001604052806000815250611696565b505050565b610d3c611baf565b610d44611185565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610d89573d6000803e3d6000fd5b50565b6000610d9782611a19565b9050919050565b60606000610dab83611c2d565b90506000604051602001610dbe90612bd8565b604051602081830303815290604052905060005b826040015181101561103e5760008582604051602001610df3929190612c0e565b6040516020818303038152906040528051906020012060001c90506000600a60a083610e1f9190612c69565b610e299190612cc9565b90506000600a60a084610e3c9190612c69565b610e469190612cc9565b90506000600a602885610e599190612c69565b610e639190612cc9565b90506000600a602886610e769190612c69565b610e809190612cc9565b9050600060ff86610e919190612c69565b90506000600360d488610ea49190612c69565b610eae9190612cc9565b9050600061016888610ec09190612c69565b905060006101f46107d08a610ed59190612c69565b610edf9190612cc9565b905060006107d08a610ef19190612c69565b905060008b03610f8057601460a042610f0a9190612c69565b610f149190612cc9565b9850601460a042610f259190612c69565b610f2f9190612cc9565b975060fa8a42610f3f9190612cc9565b610f499190612c69565b945060648a42610f599190612cc9565b610f639190612c69565b935060968a42610f739190612cc9565b610f7d9190612c69565b92505b6000610f8b8a611d05565b610f948a611d05565b610f9d8a611d05565b610fa68a611d05565b610faf8a611d05565b610fb88a611d05565b610fc18a611d05565b610fca8a611d05565b610fd38a611d05565b604051602001610feb9998979695949392919061310a565b60405160208183030381529060405290508c8160405160200161100f92919061325f565b6040516020818303038152906040529c505050505050505050505050808061103690613283565b915050610dd2565b50806040516020016110509190613317565b60405160208183030381529060405290508092505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110d2576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b61112b611baf565b6111356000611dd3565b565b60116020528060005260406000206000915090505481565b60008061115a6109db565b9050600c5481101561117c5780600c546111749190613339565b915050611182565b60009150505b90565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600380546111be90612b2a565b80601f01602080910402602001604051908101604052809291908181526020018280546111ea90612b2a565b80156112375780601f1061120c57610100808354040283529160200191611237565b820191906000526020600020905b81548152906001019060200180831161121a57829003601f168201915b5050505050905090565b600e54811115611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d906133b9565b60405180910390fd5b60006112906109db565b9050600082826112a09190612cc9565b90506009548111156112e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112de9061344b565b60405180910390fd5b600d54601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106113e057600083600f5461133f919061346b565b905080341015611384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137b906134f9565b60405180910390fd5b83601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113d39190612cc9565b9250508190555050611576565b600c5481116114c85782601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114389190612cc9565b92505081905550600d54601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba9061358b565b60405180910390fd5b611575565b600083600f546114d8919061346b565b90508034101561151d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611514906134f9565b60405180910390fd5b83601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461156c9190612cc9565b92505081905550505b5b6115803384611e99565b505050565b8060076000611592611a08565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661163f611a08565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161168491906125b5565b60405180910390a35050565b600a5481565b6116a18484846109f2565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611703576116cc84848484612054565b611702576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b600f5481565b606061171a826119a9565b611759576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611750906135f7565b60405180910390fd5b600061176483610d9e565b90506000611771846121a4565b905060006117b161178186611d05565b61178a85612209565b8460405160200161179d93929190613935565b604051602081830303815290604052612209565b9050806040516020016117c491906139ff565b6040516020818303038152906040529350505050919050565b60095481565b60106020528060005260406000206000915090505481565b611803611baf565b80600c8190555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6118a9611baf565b600954826118b56109db565b6118bf9190612cc9565b1115611900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f790613a6d565b60405180910390fd5b61190a8183611e99565b5050565b611916611baf565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197c90613aff565b60405180910390fd5b61198e81611dd3565b50565b611999611baf565b80600f8190555050565b600b5481565b6000816119b4611a10565b111580156119c3575060005482105b8015611a01575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b60008082905080611a28611a10565b11611aae57600054811015611aad5760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611aab575b60008103611aa1576004600083600190039350838152602001908152602001600020549050611a77565b8092505050611ae0565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611b6d86868461236c565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b611bb7612375565b73ffffffffffffffffffffffffffffffffffffffff16611bd5611185565b73ffffffffffffffffffffffffffffffffffffffff1614611c2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2290613b6b565b60405180910390fd5b565b611c356124e0565b60006003601884604051602001611c4c9190613b8b565b6040516020818303038152906040528051906020012060001c611c6f9190612c69565b611c799190612cc9565b90506000836040518060200160405280600060ff16815250604051602001611ca2929190613c5e565b6040516020818303038152906040528051906020012060001c90506000600a602883611cce9190612c69565b611cd89190612cc9565b90506000839050604051806060016040528085815260200183815260200182815250945050505050919050565b606060006001611d148461237d565b01905060008167ffffffffffffffff811115611d3357611d326128cd565b5b6040519080825280601f01601f191660200182016040528015611d655781602001600182028036833780820191505090505b509050600082602001820190505b600115611dc8578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611dbc57611dbb612c3a565b5b04945060008503611d73575b819350505050919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008054905060008203611ed9576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ee66000848385611b50565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611f5d83611f4e6000866000611b56565b611f57856124d0565b17611b7e565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b818114611ffe57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050611fc3565b5060008203612039576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600081905550505061204f6000848385611ba9565b505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261207a611a08565b8786866040518563ffffffff1660e01b815260040161209c9493929190613cd4565b6020604051808303816000875af19250505080156120d857506040513d601f19601f820116820180604052508101906120d59190613d35565b60015b612151573d8060008114612108576040519150601f19603f3d011682016040523d82523d6000602084013e61210d565b606091505b506000815103612149576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b606060006121b183611c2d565b905060006121c28260400151611d05565b6121cf8360000151611d05565b6121dc8460000151611d05565b6040516020016121ee93929190613f2a565b60405160208183030381529060405290508092505050919050565b6060600082510361222b57604051806020016040528060008152509050612367565b6000604051806060016040528060408152602001613fc4604091399050600060036002855161225a9190612cc9565b6122649190613f92565b6004612270919061346b565b67ffffffffffffffff811115612289576122886128cd565b5b6040519080825280601f01601f1916602001820160405280156122bb5781602001600182028036833780820191505090505b509050600182016020820185865187015b80821015612327576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f81168501518453600184019350506122cc565b505060038651066001811461234357600281146123565761235e565b603d6001830353603d600283035361235e565b603d60018303535b50505080925050505b919050565b60009392505050565b600033905090565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106123db577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816123d1576123d0612c3a565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612418576d04ee2d6d415b85acef8100000000838161240e5761240d612c3a565b5b0492506020810190505b662386f26fc10000831061244757662386f26fc10000838161243d5761243c612c3a565b5b0492506010810190505b6305f5e1008310612470576305f5e100838161246657612465612c3a565b5b0492506008810190505b612710831061249557612710838161248b5761248a612c3a565b5b0492506004810190505b606483106124b857606483816124ae576124ad612c3a565b5b0492506002810190505b600a83106124c7576001810190505b80915050919050565b60006001821460e11b9050919050565b60405180606001604052806000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61254a81612515565b811461255557600080fd5b50565b60008135905061256781612541565b92915050565b6000602082840312156125835761258261250b565b5b600061259184828501612558565b91505092915050565b60008115159050919050565b6125af8161259a565b82525050565b60006020820190506125ca60008301846125a6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561260a5780820151818401526020810190506125ef565b60008484015250505050565b6000601f19601f8301169050919050565b6000612632826125d0565b61263c81856125db565b935061264c8185602086016125ec565b61265581612616565b840191505092915050565b6000602082019050818103600083015261267a8184612627565b905092915050565b6000819050919050565b61269581612682565b81146126a057600080fd5b50565b6000813590506126b28161268c565b92915050565b6000602082840312156126ce576126cd61250b565b5b60006126dc848285016126a3565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612710826126e5565b9050919050565b61272081612705565b82525050565b600060208201905061273b6000830184612717565b92915050565b61274a81612705565b811461275557600080fd5b50565b60008135905061276781612741565b92915050565b600080604083850312156127845761278361250b565b5b600061279285828601612758565b92505060206127a3858286016126a3565b9150509250929050565b6127b681612682565b82525050565b60006020820190506127d160008301846127ad565b92915050565b6000806000606084860312156127f0576127ef61250b565b5b60006127fe86828701612758565b935050602061280f86828701612758565b9250506040612820868287016126a3565b9150509250925092565b6000602082840312156128405761283f61250b565b5b600061284e84828501612758565b91505092915050565b6128608161259a565b811461286b57600080fd5b50565b60008135905061287d81612857565b92915050565b6000806040838503121561289a5761289961250b565b5b60006128a885828601612758565b92505060206128b98582860161286e565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61290582612616565b810181811067ffffffffffffffff82111715612924576129236128cd565b5b80604052505050565b6000612937612501565b905061294382826128fc565b919050565b600067ffffffffffffffff821115612963576129626128cd565b5b61296c82612616565b9050602081019050919050565b82818337600083830152505050565b600061299b61299684612948565b61292d565b9050828152602081018484840111156129b7576129b66128c8565b5b6129c2848285612979565b509392505050565b600082601f8301126129df576129de6128c3565b5b81356129ef848260208601612988565b91505092915050565b60008060008060808587031215612a1257612a1161250b565b5b6000612a2087828801612758565b9450506020612a3187828801612758565b9350506040612a42878288016126a3565b925050606085013567ffffffffffffffff811115612a6357612a62612510565b5b612a6f878288016129ca565b91505092959194509250565b60008060408385031215612a9257612a9161250b565b5b6000612aa085828601612758565b9250506020612ab185828601612758565b9150509250929050565b60008060408385031215612ad257612ad161250b565b5b6000612ae0858286016126a3565b9250506020612af185828601612758565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b4257607f821691505b602082108103612b5557612b54612afb565b5b50919050565b600081905092915050565b7f3c73766720786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323060008201527f30302f737667222076696577426f783d223020302032303020323030223e0000602082015250565b6000612bc2603e83612b5b565b9150612bcd82612b66565b603e82019050919050565b6000612be382612bb5565b9150819050919050565b6000819050919050565b612c08612c0382612682565b612bed565b82525050565b6000612c1a8285612bf7565b602082019150612c2a8284612bf7565b6020820191508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c7482612682565b9150612c7f83612682565b925082612c8f57612c8e612c3a565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612cd482612682565b9150612cdf83612682565b9250828201905080821115612cf757612cf6612c9a565b5b92915050565b7f3c7265637420783d220000000000000000000000000000000000000000000000600082015250565b6000612d33600983612b5b565b9150612d3e82612cfd565b600982019050919050565b6000612d54826125d0565b612d5e8185612b5b565b9350612d6e8185602086016125ec565b80840191505092915050565b7f2220793d22000000000000000000000000000000000000000000000000000000600082015250565b6000612db0600583612b5b565b9150612dbb82612d7a565b600582019050919050565b7f222077696474683d220000000000000000000000000000000000000000000000600082015250565b6000612dfc600983612b5b565b9150612e0782612dc6565b600982019050919050565b7f22206865696768743d2200000000000000000000000000000000000000000000600082015250565b6000612e48600a83612b5b565b9150612e5382612e12565b600a82019050919050565b7f222066696c6c3d22726762280000000000000000000000000000000000000000600082015250565b6000612e94600c83612b5b565b9150612e9f82612e5e565b600c82019050919050565b7f2c00000000000000000000000000000000000000000000000000000000000000600082015250565b6000612ee0600183612b5b565b9150612eeb82612eaa565b600182019050919050565b7f2922000000000000000000000000000000000000000000000000000000000000600082015250565b6000612f2c600283612b5b565b9150612f3782612ef6565b600282019050919050565b7f3e00000000000000000000000000000000000000000000000000000000000000600082015250565b6000612f78600183612b5b565b9150612f8382612f42565b600182019050919050565b7f3c616e696d617465206174747269627574654e616d653d226f7061636974792260008201527f2076616c7565733d22313b302e353b3122206475723d22000000000000000000602082015250565b6000612fea603783612b5b565b9150612ff582612f8e565b603782019050919050565b7f6d732220726570656174436f756e743d22696e646566696e697465222062656760008201527f696e3d2200000000000000000000000000000000000000000000000000000000602082015250565b600061305c602483612b5b565b915061306782613000565b602482019050919050565b7f6d7322202f3e0000000000000000000000000000000000000000000000000000600082015250565b60006130a8600683612b5b565b91506130b382613072565b600682019050919050565b7f3c2f726563743e00000000000000000000000000000000000000000000000000600082015250565b60006130f4600783612b5b565b91506130ff826130be565b600782019050919050565b600061311582612d26565b9150613121828c612d49565b915061312c82612da3565b9150613138828b612d49565b915061314382612def565b915061314f828a612d49565b915061315a82612e3b565b91506131668289612d49565b915061317182612e87565b915061317d8288612d49565b915061318882612ed3565b91506131948287612d49565b915061319f82612ed3565b91506131ab8286612d49565b91506131b682612f1f565b91506131c182612f6b565b91506131cc82612fdd565b91506131d88285612d49565b91506131e38261304f565b91506131ef8284612d49565b91506131fa8261309b565b9150613205826130e7565b91508190509a9950505050505050505050565b600081519050919050565b600081905092915050565b600061323982613218565b6132438185613223565b93506132538185602086016125ec565b80840191505092915050565b600061326b828561322e565b9150613277828461322e565b91508190509392505050565b600061328e82612682565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132c0576132bf612c9a565b5b600182019050919050565b7f3c2f7376673e0000000000000000000000000000000000000000000000000000600082015250565b6000613301600683612b5b565b915061330c826132cb565b600682019050919050565b6000613323828461322e565b915061332e826132f4565b915081905092915050565b600061334482612682565b915061334f83612682565b925082820390508181111561336757613366612c9a565b5b92915050565b7f4d6178696d756d20706572206d696e7420697320313000000000000000000000600082015250565b60006133a36016836125db565b91506133ae8261336d565b602082019050919050565b600060208201905081810360008301526133d281613396565b9050919050565b7f4e756d626572206578636565647320746865206d6178696d756d20737570706c60008201527f7900000000000000000000000000000000000000000000000000000000000000602082015250565b60006134356021836125db565b9150613440826133d9565b604082019050919050565b6000602082019050818103600083015261346481613428565b9050919050565b600061347682612682565b915061348183612682565b925082820261348f81612682565b915082820484148315176134a6576134a5612c9a565b5b5092915050565b7f496e636f727265637420416d6f756e7400000000000000000000000000000000600082015250565b60006134e36010836125db565b91506134ee826134ad565b602082019050919050565b60006020820190508181036000830152613512816134d6565b9050919050565b7f596f7527766520636c61696d656420616c6c20796f75722077686974656c697360008201527f7473000000000000000000000000000000000000000000000000000000000000602082015250565b60006135756022836125db565b915061358082613519565b604082019050919050565b600060208201905081810360008301526135a481613568565b9050919050565b7f546f6b656e20646f6573206e6f74206578697374000000000000000000000000600082015250565b60006135e16014836125db565b91506135ec826135ab565b602082019050919050565b60006020820190508181036000830152613610816135d4565b9050919050565b7f7b226e616d65223a20224169426c6f636b636861696e204f6e2d436861696e2060008201527f2300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613673602183612b5b565b915061367e82613617565b602182019050919050565b7f222c200000000000000000000000000000000000000000000000000000000000600082015250565b60006136bf600383612b5b565b91506136ca82613689565b600382019050919050565b7f226465736372697074696f6e223a202254686520666972737420666f7265766560008201527f722065766f6c76696e672061727420636f6c6c656374696f6e2c2066756c6c7960208201527f204f6e2d436861696e20616e696d6174656420626c6f636b20636861696e732060408201527f637261667465642062792041492e2045616368204e465420686173206120756e60608201527f69717565204f726967696e20426c6f636b2074686174206368616e676573206360808201527f6f6c6f727320616e6420706f736974696f6e732061732074686520457468657260a08201527f65756d20626c6f636b636861696e20636f6e74696e75657320746f2067726f7760c08201527f2e222c200000000000000000000000000000000000000000000000000000000060e082015250565b600061381560e483612b5b565b9150613820826136d5565b60e482019050919050565b7f22696d616765223a2022646174613a696d6167652f7376672b786d6c3b62617360008201527f6536342c00000000000000000000000000000000000000000000000000000000602082015250565b6000613887602483612b5b565b91506138928261382b565b602482019050919050565b7f2261747472696275746573223a205b0000000000000000000000000000000000600082015250565b60006138d3600f83612b5b565b91506138de8261389d565b600f82019050919050565b7f5d7d200000000000000000000000000000000000000000000000000000000000600082015250565b600061391f600383612b5b565b915061392a826138e9565b600382019050919050565b600061394082613666565b915061394c8286612d49565b9150613957826136b2565b915061396282613808565b915061396d8261387a565b91506139798285612d49565b9150613984826136b2565b915061398f826138c6565b915061399b8284612d49565b91506139a682613912565b9150819050949350505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b60006139e9601d83612b5b565b91506139f4826139b3565b601d82019050919050565b6000613a0a826139dc565b9150613a168284612d49565b915081905092915050565b7f4d617820737570706c7920657863656564656421000000000000000000000000600082015250565b6000613a576014836125db565b9150613a6282613a21565b602082019050919050565b60006020820190508181036000830152613a8681613a4a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ae96026836125db565b9150613af482613a8d565b604082019050919050565b60006020820190508181036000830152613b1881613adc565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b556020836125db565b9150613b6082613b1f565b602082019050919050565b60006020820190508181036000830152613b8481613b48565b9050919050565b6000613b978284612bf7565b60208201915081905092915050565b600060019050919050565b600081905092915050565b6000819050919050565b600060ff82169050919050565b613bdc81613bc6565b82525050565b6000613bee8383613bd3565b60208301905092915050565b6000602082019050919050565b613c1081613ba6565b613c1a8184613bb1565b9250613c2582613bbc565b8060005b83811015613c56578151613c3d8782613be2565b9650613c4883613bfa565b925050600181019050613c29565b505050505050565b6000613c6a8285612bf7565b602082019150613c7a8284613c07565b6020820191508190509392505050565b600082825260208201905092915050565b6000613ca682613218565b613cb08185613c8a565b9350613cc08185602086016125ec565b613cc981612616565b840191505092915050565b6000608082019050613ce96000830187612717565b613cf66020830186612717565b613d0360408301856127ad565b8181036060830152613d158184613c9b565b905095945050505050565b600081519050613d2f81612541565b92915050565b600060208284031215613d4b57613d4a61250b565b5b6000613d5984828501613d20565b91505092915050565b7f7b2274726169745f74797065223a2022426c6f636b73222c202276616c75652260008201527f3a20220000000000000000000000000000000000000000000000000000000000602082015250565b6000613dbe602383612b5b565b9150613dc982613d62565b602382019050919050565b7f227d2c0000000000000000000000000000000000000000000000000000000000600082015250565b6000613e0a600383612b5b565b9150613e1582613dd4565b600382019050919050565b7f7b2274726169745f74797065223a20224f726967696e20426c6f636b2053697a60008201527f65222c202276616c7565223a2022000000000000000000000000000000000000602082015250565b6000613e7c602e83612b5b565b9150613e8782613e20565b602e82019050919050565b7f2078200000000000000000000000000000000000000000000000000000000000600082015250565b6000613ec8600383612b5b565b9150613ed382613e92565b600382019050919050565b7f207078227d000000000000000000000000000000000000000000000000000000600082015250565b6000613f14600583612b5b565b9150613f1f82613ede565b600582019050919050565b6000613f3582613db1565b9150613f418286612d49565b9150613f4c82613dfd565b9150613f5782613e6f565b9150613f638285612d49565b9150613f6e82613ebb565b9150613f7a8284612d49565b9150613f8582613f07565b9150819050949350505050565b6000613f9d82612682565b9150613fa883612682565b925082613fb857613fb7612c3a565b5b82820490509291505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220fef8b1ca4a96f7f59f5b467d6bc1f82223b2dd9f4bf5c2d300fdbf756d48870064736f6c63430008110033