60806040523480156200001157600080fd5b506040516200352d3803806200352d833981810160405281019062000037919062000492565b336040518060400160405280600781526020017f5a65726f4e4654000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5a4e4654000000000000000000000000000000000000000000000000000000008152508160009081620000b5919062000749565b508060019081620000c7919062000749565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200013f5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000136919062000841565b60405180910390fd5b6200015081620001ba60201b60201c565b5081600881905550600060098190555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001b2816200028060201b60201c565b50506200085e565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620002906200031960201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620003055760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620002fc919062000841565b60405180910390fd5b6200031681620001ba60201b60201c565b50565b62000329620003bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200034f620003c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620003b9576200037b620003bb60201b60201c565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401620003b0919062000841565b60405180910390fd5b565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b6000819050919050565b6200040781620003f2565b81146200041357600080fd5b50565b6000815190506200042781620003fc565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200045a826200042d565b9050919050565b6200046c816200044d565b81146200047857600080fd5b50565b6000815190506200048c8162000461565b92915050565b60008060408385031215620004ac57620004ab620003ed565b5b6000620004bc8582860162000416565b9250506020620004cf858286016200047b565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200055b57607f821691505b60208210810362000571576200057062000513565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005db7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200059c565b620005e786836200059c565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200062a620006246200061e84620003f2565b620005ff565b620003f2565b9050919050565b6000819050919050565b620006468362000609565b6200065e620006558262000631565b848454620005a9565b825550505050565b600090565b6200067562000666565b620006828184846200063b565b505050565b5b81811015620006aa576200069e6000826200066b565b60018101905062000688565b5050565b601f821115620006f957620006c38162000577565b620006ce846200058c565b81016020851015620006de578190505b620006f6620006ed856200058c565b83018262000687565b50505b505050565b600082821c905092915050565b60006200071e60001984600802620006fe565b1980831691505092915050565b60006200073983836200070b565b9150826002028217905092915050565b6200075482620004d9565b67ffffffffffffffff81111562000770576200076f620004e4565b5b6200077c825462000542565b62000789828285620006ae565b600060209050601f831160018114620007c15760008415620007ac578287015190505b620007b885826200072b565b86555062000828565b601f198416620007d18662000577565b60005b82811015620007fb57848901518255600182019150602085019450602081019050620007d4565b868310156200081b578489015162000817601f8916826200070b565b8355505b6001600288020188555050505b505050505050565b6200083b816200044d565b82525050565b600060208201905062000858600083018462000830565b92915050565b612cbf806200086e6000396000f3fe60806040526004361061014b5760003560e01c8063715018a6116100b6578063c3d6ee7f1161006f578063c3d6ee7f1461044b578063c87b56dd14610474578063d082e381146104b1578063e985e9c5146104dc578063f2fde38b14610519578063f4a0a528146105425761014b565b8063715018a6146103615780638da5cb5b1461037857806395d89b41146103a3578063a22cb465146103ce578063aa3ec0a9146103f7578063b88d4fde146104225761014b565b806323b872dd1161010857806323b872dd146102535780633ccfd60b1461027c57806342842e0e146102935780636352211e146102bc5780636817c76c146102f957806370a08231146103245761014b565b806301ffc9a71461015057806302a867811461018d57806306fdde03146101b8578063081812fc146101e3578063095ea7b31461022057806314f710fe14610249575b600080fd5b34801561015c57600080fd5b5061017760048036038101906101729190611f3b565b61056b565b6040516101849190611f83565b60405180910390f35b34801561019957600080fd5b506101a26105cc565b6040516101af9190611fdf565b60405180910390f35b3480156101c457600080fd5b506101cd6105f2565b6040516101da919061208a565b60405180910390f35b3480156101ef57600080fd5b5061020a600480360381019061020591906120e2565b610684565b6040516102179190611fdf565b60405180910390f35b34801561022c57600080fd5b506102476004803603810190610242919061213b565b6106a0565b005b6102516106b6565b005b34801561025f57600080fd5b5061027a6004803603810190610275919061217b565b61074c565b005b34801561028857600080fd5b5061029161084e565b005b34801561029f57600080fd5b506102ba60048036038101906102b5919061217b565b6108a6565b005b3480156102c857600080fd5b506102e360048036038101906102de91906120e2565b6108c6565b6040516102f09190611fdf565b60405180910390f35b34801561030557600080fd5b5061030e6108d8565b60405161031b91906121dd565b60405180910390f35b34801561033057600080fd5b5061034b600480360381019061034691906121f8565b6108de565b60405161035891906121dd565b60405180910390f35b34801561036d57600080fd5b50610376610998565b005b34801561038457600080fd5b5061038d6109ac565b60405161039a9190611fdf565b60405180910390f35b3480156103af57600080fd5b506103b86109d6565b6040516103c5919061208a565b60405180910390f35b3480156103da57600080fd5b506103f560048036038101906103f09190612251565b610a68565b005b34801561040357600080fd5b5061040c610a7e565b604051610419919061208a565b60405180910390f35b34801561042e57600080fd5b50610449600480360381019061044491906123c6565b610b0c565b005b34801561045757600080fd5b50610472600480360381019061046d91906124ea565b610b29565b005b34801561048057600080fd5b5061049b600480360381019061049691906120e2565b610c0e565b6040516104a8919061208a565b60405180910390f35b3480156104bd57600080fd5b506104c6610d21565b6040516104d391906121dd565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe9190612533565b610d27565b6040516105109190611f83565b60405180910390f35b34801561052557600080fd5b50610540600480360381019061053b91906121f8565b610dbb565b005b34801561054e57600080fd5b50610569600480360381019061056491906120e2565b610e41565b005b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105c557506105c482610e53565b5b9050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060008054610601906125a2565b80601f016020809104026020016040519081016040528092919081815260200182805461062d906125a2565b801561067a5780601f1061064f5761010080835404028352916020019161067a565b820191906000526020600020905b81548152906001019060200180831161065d57829003601f168201915b5050505050905090565b600061068f82610f35565b5061069982610fbd565b9050919050565b6106b282826106ad610ffa565b611002565b5050565b60085434146106fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f190612645565b60405180910390fd5b61070633600954611014565b610732600954600b60405160200161071e9190612754565b604051602081830303815290604052611032565b60096000815480929190610745906127a5565b9190505550565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107be5760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016107b59190611fdf565b60405180910390fd5b60006107d283836107cd610ffa565b61108e565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610848578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161083f939291906127ed565b60405180910390fd5b50505050565b6108566112a8565b61085e6109ac565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156108a3573d6000803e3d6000fd5b50565b6108c183838360405180602001604052806000815250610b0c565b505050565b60006108d182610f35565b9050919050565b60085481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109515760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016109489190611fdf565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109a06112a8565b6109aa600061132f565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600180546109e5906125a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610a11906125a2565b8015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050905090565b610a7a610a73610ffa565b83836113f5565b5050565b600b8054610a8b906125a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab7906125a2565b8015610b045780601f10610ad957610100808354040283529160200191610b04565b820191906000526020600020905b815481529060010190602001808311610ae757829003601f168201915b505050505081565b610b1784848461074c565b610b2384848484611564565b50505050565b610bbc600b8054610b39906125a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610b65906125a2565b8015610bb25780601f10610b8757610100808354040283529160200191610bb2565b820191906000526020600020905b815481529060010190602001808311610b9557829003601f168201915b505050505061171b565b610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290612870565b60405180910390fd5b80600b9081610c0a9190612a27565b5050565b6060610c1982610f35565b506000600660008481526020019081526020016000208054610c3a906125a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610c66906125a2565b8015610cb35780601f10610c8857610100808354040283529160200191610cb3565b820191906000526020600020905b815481529060010190602001808311610c9657829003601f168201915b505050505090506000610cc4611728565b90506000815103610cd9578192505050610d1c565b600082511115610d0e578082604051602001610cf6929190612b2a565b60405160208183030381529060405292505050610d1c565b610d178461173f565b925050505b919050565b60095481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610dc36112a8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e355760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610e2c9190611fdf565b60405180910390fd5b610e3e8161132f565b50565b610e496112a8565b8060088190555050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f1e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610f2e5750610f2d826117a8565b5b9050919050565b600080610f4183611812565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fb457826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610fab91906121dd565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b61100f838383600161184f565b505050565b61102e828260405180602001604052806000815250611a14565b5050565b806006600084815260200190815260200160002090816110529190612a27565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce78260405161108291906121dd565b60405180910390a15050565b60008061109a84611812565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146110dc576110db818486611a30565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461116d5761111e60008560008061184f565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146111f0576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6112b0610ffa565b73ffffffffffffffffffffffffffffffffffffffff166112ce6109ac565b73ffffffffffffffffffffffffffffffffffffffff161461132d576112f1610ffa565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016113249190611fdf565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361146657816040517f5b08ba1800000000000000000000000000000000000000000000000000000000815260040161145d9190611fdf565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516115579190611f83565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115611715578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026115a8610ffa565b8685856040518563ffffffff1660e01b81526004016115ca9493929190612ba3565b6020604051808303816000875af192505050801561160657506040513d601f19601f820116820180604052508101906116039190612c04565b60015b61168a573d8060008114611636576040519150601f19603f3d011682016040523d82523d6000602084013e61163b565b606091505b50600081510361168257836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016116799190611fdf565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461171357836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161170a9190611fdf565b60405180910390fd5b505b50505050565b6000808251149050919050565b606060405180602001604052806000815250905090565b606061174a82610f35565b506000611755611728565b9050600081511161177557604051806020016040528060008152506117a0565b8061177f84611af4565b604051602001611790929190612b2a565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806118885750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119bc57600061189884610f35565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561190357508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561191657506119148184610d27565b155b1561195857826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161194f9190611fdf565b60405180910390fd5b81156119ba57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611a1e8383611bc2565b611a2b6000848484611564565b505050565b611a3b838383611cbb565b611aef57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ab057806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611aa791906121dd565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611ae6929190612c31565b60405180910390fd5b505050565b606060006001611b0384611d7c565b01905060008167ffffffffffffffff811115611b2257611b2161229b565b5b6040519080825280601f01601f191660200182016040528015611b545781602001600182028036833780820191505090505b509050600082602001820190505b600115611bb7578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611bab57611baa612c5a565b5b04945060008503611b62575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c345760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611c2b9190611fdf565b60405180910390fd5b6000611c428383600061108e565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611cb65760006040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611cad9190611fdf565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d7357508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611d345750611d338484610d27565b5b80611d7257508273ffffffffffffffffffffffffffffffffffffffff16611d5a83610fbd565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611dda577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611dd057611dcf612c5a565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611e17576d04ee2d6d415b85acef81000000008381611e0d57611e0c612c5a565b5b0492506020810190505b662386f26fc100008310611e4657662386f26fc100008381611e3c57611e3b612c5a565b5b0492506010810190505b6305f5e1008310611e6f576305f5e1008381611e6557611e64612c5a565b5b0492506008810190505b6127108310611e94576127108381611e8a57611e89612c5a565b5b0492506004810190505b60648310611eb75760648381611ead57611eac612c5a565b5b0492506002810190505b600a8310611ec6576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f1881611ee3565b8114611f2357600080fd5b50565b600081359050611f3581611f0f565b92915050565b600060208284031215611f5157611f50611ed9565b5b6000611f5f84828501611f26565b91505092915050565b60008115159050919050565b611f7d81611f68565b82525050565b6000602082019050611f986000830184611f74565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fc982611f9e565b9050919050565b611fd981611fbe565b82525050565b6000602082019050611ff46000830184611fd0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612034578082015181840152602081019050612019565b60008484015250505050565b6000601f19601f8301169050919050565b600061205c82611ffa565b6120668185612005565b9350612076818560208601612016565b61207f81612040565b840191505092915050565b600060208201905081810360008301526120a48184612051565b905092915050565b6000819050919050565b6120bf816120ac565b81146120ca57600080fd5b50565b6000813590506120dc816120b6565b92915050565b6000602082840312156120f8576120f7611ed9565b5b6000612106848285016120cd565b91505092915050565b61211881611fbe565b811461212357600080fd5b50565b6000813590506121358161210f565b92915050565b6000806040838503121561215257612151611ed9565b5b600061216085828601612126565b9250506020612171858286016120cd565b9150509250929050565b60008060006060848603121561219457612193611ed9565b5b60006121a286828701612126565b93505060206121b386828701612126565b92505060406121c4868287016120cd565b9150509250925092565b6121d7816120ac565b82525050565b60006020820190506121f260008301846121ce565b92915050565b60006020828403121561220e5761220d611ed9565b5b600061221c84828501612126565b91505092915050565b61222e81611f68565b811461223957600080fd5b50565b60008135905061224b81612225565b92915050565b6000806040838503121561226857612267611ed9565b5b600061227685828601612126565b92505060206122878582860161223c565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6122d382612040565b810181811067ffffffffffffffff821117156122f2576122f161229b565b5b80604052505050565b6000612305611ecf565b905061231182826122ca565b919050565b600067ffffffffffffffff8211156123315761233061229b565b5b61233a82612040565b9050602081019050919050565b82818337600083830152505050565b600061236961236484612316565b6122fb565b90508281526020810184848401111561238557612384612296565b5b612390848285612347565b509392505050565b600082601f8301126123ad576123ac612291565b5b81356123bd848260208601612356565b91505092915050565b600080600080608085870312156123e0576123df611ed9565b5b60006123ee87828801612126565b94505060206123ff87828801612126565b9350506040612410878288016120cd565b925050606085013567ffffffffffffffff81111561243157612430611ede565b5b61243d87828801612398565b91505092959194509250565b600067ffffffffffffffff8211156124645761246361229b565b5b61246d82612040565b9050602081019050919050565b600061248d61248884612449565b6122fb565b9050828152602081018484840111156124a9576124a8612296565b5b6124b4848285612347565b509392505050565b600082601f8301126124d1576124d0612291565b5b81356124e184826020860161247a565b91505092915050565b600060208284031215612500576124ff611ed9565b5b600082013567ffffffffffffffff81111561251e5761251d611ede565b5b61252a848285016124bc565b91505092915050565b6000806040838503121561254a57612549611ed9565b5b600061255885828601612126565b925050602061256985828601612126565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806125ba57607f821691505b6020821081036125cd576125cc612573565b5b50919050565b7f506c65617365207375626d697420746865206578616374206d696e74696e672060008201527f7072696365000000000000000000000000000000000000000000000000000000602082015250565b600061262f602583612005565b915061263a826125d3565b604082019050919050565b6000602082019050818103600083015261265e81612622565b9050919050565b600081905092915050565b7f697066733a2f2f00000000000000000000000000000000000000000000000000600082015250565b60006126a6600783612665565b91506126b182612670565b600782019050919050565b60008190508160005260206000209050919050565b600081546126de816125a2565b6126e88186612665565b9450600182166000811461270357600181146127185761274b565b60ff198316865281151582028601935061274b565b612721856126bc565b60005b8381101561274357815481890152600182019150602081019050612724565b838801955050505b50505092915050565b600061275f82612699565b915061276b82846126d1565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127b0826120ac565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127e2576127e1612776565b5b600182019050919050565b60006060820190506128026000830186611fd0565b61280f60208301856121ce565b61281c6040830184611fd0565b949350505050565b7f63696420616c7265616479207365740000000000000000000000000000000000600082015250565b600061285a600f83612005565b915061286582612824565b602082019050919050565b600060208201905081810360008301526128898161284d565b9050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026128dd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826128a0565b6128e786836128a0565b95508019841693508086168417925050509392505050565b6000819050919050565b600061292461291f61291a846120ac565b6128ff565b6120ac565b9050919050565b6000819050919050565b61293e83612909565b61295261294a8261292b565b8484546128ad565b825550505050565b600090565b61296761295a565b612972818484612935565b505050565b5b818110156129965761298b60008261295f565b600181019050612978565b5050565b601f8211156129db576129ac816126bc565b6129b584612890565b810160208510156129c4578190505b6129d86129d085612890565b830182612977565b50505b505050565b600082821c905092915050565b60006129fe600019846008026129e0565b1980831691505092915050565b6000612a1783836129ed565b9150826002028217905092915050565b612a3082611ffa565b67ffffffffffffffff811115612a4957612a4861229b565b5b612a5382546125a2565b612a5e82828561299a565b600060209050601f831160018114612a915760008415612a7f578287015190505b612a898582612a0b565b865550612af1565b601f198416612a9f866126bc565b60005b82811015612ac757848901518255600182019150602085019450602081019050612aa2565b86831015612ae45784890151612ae0601f8916826129ed565b8355505b6001600288020188555050505b505050505050565b6000612b0482611ffa565b612b0e8185612665565b9350612b1e818560208601612016565b80840191505092915050565b6000612b368285612af9565b9150612b428284612af9565b91508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000612b7582612b4e565b612b7f8185612b59565b9350612b8f818560208601612016565b612b9881612040565b840191505092915050565b6000608082019050612bb86000830187611fd0565b612bc56020830186611fd0565b612bd260408301856121ce565b8181036060830152612be48184612b6a565b905095945050505050565b600081519050612bfe81611f0f565b92915050565b600060208284031215612c1a57612c19611ed9565b5b6000612c2884828501612bef565b91505092915050565b6000604082019050612c466000830185611fd0565b612c5360208301846121ce565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220bf32ac0dfb51a0d1181f51638dcda36ea687a8e2f494bbcc2971c6ed07d9298864736f6c6343000814003300000000000000000000000000000000000000000000000000005af3107a40000000000000000000000000006945ee254481302ad292dfc8f7f27c4b065af96d