60c060405260026012600a6200001691906200077d565b620f4240620000269190620007ce565b62000032919062000848565b6005556012600a6200004591906200077d565b620f4240620000559190620007ce565b600655601960085560286009556000600b60146101000a81548160ff0219169083151502179055503480156200008a57600080fd5b5060006200009d620005db60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002249190620008ea565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d49190620008ea565b6040518363ffffffff1660e01b8152600401620002f39291906200092d565b6020604051808303816000875af115801562000313573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003399190620008ea565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c732214bfebfecb96847fd86cdfa43c5d2110a3e73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505073264b9a6f4fd37a9d9806083c6c57c60952cb219d73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506012600a6200041991906200077d565b6305f5e1006200042a9190620007ce565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200054e620005db60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620005ad91906200077d565b6305f5e100620005be9190620007ce565b604051620005cd91906200096b565b60405180910390a362000988565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200067157808604811115620006495762000648620005e3565b5b6001851615620006595780820291505b8081029050620006698562000612565b945062000629565b94509492505050565b6000826200068c57600190506200075f565b816200069c57600090506200075f565b8160018114620006b55760028114620006c057620006f6565b60019150506200075f565b60ff841115620006d557620006d4620005e3565b5b8360020a915084821115620006ef57620006ee620005e3565b5b506200075f565b5060208310610133831016604e8410600b8410161715620007305782820a9050838111156200072a5762000729620005e3565b5b6200075f565b6200073f84848460016200061f565b92509050818404811115620007595762000758620005e3565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200078a8262000766565b9150620007978362000770565b9250620007c67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200067a565b905092915050565b6000620007db8262000766565b9150620007e88362000766565b9250828202620007f88162000766565b91508282048414831517620008125762000811620005e3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008558262000766565b9150620008628362000766565b92508262000875576200087462000819565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008b28262000885565b9050919050565b620008c481620008a5565b8114620008d057600080fd5b50565b600081519050620008e481620008b9565b92915050565b60006020828403121562000903576200090262000880565b5b60006200091384828501620008d3565b91505092915050565b6200092781620008a5565b82525050565b60006040820190506200094460008301856200091c565b6200095360208301846200091c565b9392505050565b620009658162000766565b82525050565b60006020820190506200098260008301846200095a565b92915050565b60805160a051613121620009d860003960008181610b5a01528181610ea70152611e14015260008181610af901528181610bf201528181610c81015281816111750152611eac01526131216000f3fe6080604052600436106101bb5760003560e01c80638da5cb5b116100ec578063c63baaf31161008a578063cdb8186f11610064578063cdb8186f146105ab578063dd62ed3e146105d4578063f2fde38b14610611578063fda38a801461063a576101c2565b8063c63baaf314610540578063cb31036914610557578063cc1776d314610580576101c2565b80639817e82d116100c65780639817e82d1461049a578063a9059cbb146104c3578063b0cfb34414610500578063bf6a1c0d14610529576101c2565b80638da5cb5b1461041957806395d89b411461044457806397b2ebfe1461046f576101c2565b806349bd5a5e11610159578063591218981161013357806359121898146103835780636cae5a691461039a57806370a08231146103c5578063715018a614610402576101c2565b806349bd5a5e146103165780634f7041a5146103415780635080c8351461036c576101c2565b80631d875776116101955780631d8757761461025a578063230b33501461028357806323b872dd146102ae578063313ce567146102eb576101c2565b806306fdde03146101c7578063095ea7b3146101f257806318160ddd1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610663565b6040516101e9919061233a565b60405180910390f35b3480156101fe57600080fd5b50610219600480360381019061021491906123f5565b6106a0565b6040516102269190612450565b60405180910390f35b34801561023b57600080fd5b506102446106be565b604051610251919061247a565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c9190612495565b6106e2565b005b34801561028f57600080fd5b506102986108e2565b6040516102a5919061247a565b60405180910390f35b3480156102ba57600080fd5b506102d560048036038101906102d091906124c2565b6108e8565b6040516102e29190612450565b60405180910390f35b3480156102f757600080fd5b50610300610a08565b60405161030d9190612531565b60405180910390f35b34801561032257600080fd5b5061032b610a11565b604051610338919061255b565b60405180910390f35b34801561034d57600080fd5b50610356610a37565b604051610363919061247a565b60405180910390f35b34801561037857600080fd5b50610381610a3d565b005b34801561038f57600080fd5b50610398610af7565b005b3480156103a657600080fd5b506103af610c7f565b6040516103bc919061255b565b60405180910390f35b3480156103d157600080fd5b506103ec60048036038101906103e79190612495565b610ca3565b6040516103f9919061247a565b60405180910390f35b34801561040e57600080fd5b50610417610cec565b005b34801561042557600080fd5b5061042e610e3f565b60405161043b919061255b565b60405180910390f35b34801561045057600080fd5b50610459610e68565b604051610466919061233a565b60405180910390f35b34801561047b57600080fd5b50610484610ea5565b604051610491919061255b565b60405180910390f35b3480156104a657600080fd5b506104c160048036038101906104bc9190612576565b610ec9565b005b3480156104cf57600080fd5b506104ea60048036038101906104e591906123f5565b610fbf565b6040516104f79190612450565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190612495565b610fdd565b005b34801561053557600080fd5b5061053e6110ba565b005b34801561054c57600080fd5b50610555611173565b005b34801561056357600080fd5b5061057e600480360381019061057991906125b6565b6111eb565b005b34801561058c57600080fd5b5061059561128a565b6040516105a2919061247a565b60405180910390f35b3480156105b757600080fd5b506105d260048036038101906105cd9190612495565b611290565b005b3480156105e057600080fd5b506105fb60048036038101906105f691906125e3565b61136d565b604051610608919061247a565b60405180910390f35b34801561061d57600080fd5b5061063860048036038101906106339190612495565b6113f4565b005b34801561064657600080fd5b50610661600480360381019061065c9190612495565b611495565b005b60606040518060400160405280600681526020017f506f706579650000000000000000000000000000000000000000000000000000815250905090565b60006106b46106ad611572565b848461157a565b6001905092915050565b60006012600a6106ce9190612785565b6305f5e1006106dd91906127d0565b905090565b6106ea611572565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076e9061285e565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156108015750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561085b5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61089a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610891906128ca565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60065481565b60006108f5848484611743565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610940611572565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109fc57828110156109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de9061295c565b60405180910390fd5b6109fb856109f3611572565b85840361157a565b5b60019150509392505050565b60006012905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b610a45611572565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac99061285e565b60405180910390fd5b6012600a610ae09190612785565b6305f5e100610aef91906127d0565b600681905550565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610b36611572565b73ffffffffffffffffffffffffffffffffffffffff1614610b5657600080fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16600a47610b9c91906129ab565b604051610ba890612a0d565b60006040518083038185875af1925050503d8060008114610be5576040519150601f19603f3d011682016040523d82523d6000602084013e610bea565b606091505b5050809150507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1647604051610c3490612a0d565b60006040518083038185875af1925050503d8060008114610c71576040519150601f19603f3d011682016040523d82523d6000602084013e610c76565b606091505b50508091505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cf4611572565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d789061285e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f504f504559450000000000000000000000000000000000000000000000000000815250905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b610ed1611572565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f559061285e565b60405180910390fd5b60468183610f6c9190612a22565b1115610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa490612aa2565b60405180910390fd5b81600881905550806009819055505050565b6000610fd3610fcc611572565b8484611743565b6001905092915050565b610fe5611572565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611072576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110699061285e565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6110c2611572565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111469061285e565b60405180910390fd5b6001600b60146101000a81548160ff02191690831515021790555043600781905550565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166111b2611572565b73ffffffffffffffffffffffffffffffffffffffff16146111d257600080fd5b60006111dd30610ca3565b90506111e881611bd1565b50565b6111f3611572565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611280576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112779061285e565b60405180910390fd5b8060058190555050565b60095481565b611298611572565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131c9061285e565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113fc611572565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611489576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114809061285e565b60405180910390fd5b61149281611f3b565b50565b61149d611572565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461152a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115219061285e565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e090612b34565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f90612bc6565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611736919061247a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a990612c58565b60405180910390fd5b600081116117f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ec90612cc4565b60405180910390fd5b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414801561188457506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15611bbf57600b60149054906101000a900460ff166118d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cf90612d30565b60405180910390fd5b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461195a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195190612d9c565b60405180910390fd5b60065482111561199f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199690612e08565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a2b575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a895760065482611a3d85610ca3565b611a479190612a22565b1115611a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7f90612e08565b60405180910390fd5b5b6002600754611a989190612a22565b431015611aa857603c9050611bbe565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b07576008549050611bbd565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bbc576000611b6730610ca3565b90506012600a611b779190612785565b619c40611b8491906127d0565b811115611bb5576000600554905083821115611b9e578391505b80821115611baa578091505b611bb382611bd1565b505b6009549150505b5b5b5b611bcb84848484612067565b50505050565b6000600267ffffffffffffffff811115611bee57611bed612e28565b5b604051908082528060200260200182016040528015611c1c5781602001602082028036833780820191505090505b5090503081600081518110611c3457611c33612e57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cff9190612e9b565b81600181518110611d1357611d12612e57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d7a30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461157a565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611dde959493929190612fcb565b600060405180830381600087803b158015611df857600080fd5b505af1158015611e0c573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16600a47611e5691906129ab565b604051611e6290612a0d565b60006040518083038185875af1925050503d8060008114611e9f576040519150601f19603f3d011682016040523d82523d6000602084013e611ea4565b606091505b5050809150507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1647604051611eee90612a0d565b60006040518083038185875af1925050503d8060008114611f2b576040519150601f19603f3d011682016040523d82523d6000602084013e611f30565b606091505b505080915050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa190613097565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006064828461207791906127d0565b61208191906129ab565b90506000818461209191906130b7565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120de91906130b7565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461216c9190612a22565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121fa9190612a22565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161229a919061247a565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122e45780820151818401526020810190506122c9565b60008484015250505050565b6000601f19601f8301169050919050565b600061230c826122aa565b61231681856122b5565b93506123268185602086016122c6565b61232f816122f0565b840191505092915050565b600060208201905081810360008301526123548184612301565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061238c82612361565b9050919050565b61239c81612381565b81146123a757600080fd5b50565b6000813590506123b981612393565b92915050565b6000819050919050565b6123d2816123bf565b81146123dd57600080fd5b50565b6000813590506123ef816123c9565b92915050565b6000806040838503121561240c5761240b61235c565b5b600061241a858286016123aa565b925050602061242b858286016123e0565b9150509250929050565b60008115159050919050565b61244a81612435565b82525050565b60006020820190506124656000830184612441565b92915050565b612474816123bf565b82525050565b600060208201905061248f600083018461246b565b92915050565b6000602082840312156124ab576124aa61235c565b5b60006124b9848285016123aa565b91505092915050565b6000806000606084860312156124db576124da61235c565b5b60006124e9868287016123aa565b93505060206124fa868287016123aa565b925050604061250b868287016123e0565b9150509250925092565b600060ff82169050919050565b61252b81612515565b82525050565b60006020820190506125466000830184612522565b92915050565b61255581612381565b82525050565b6000602082019050612570600083018461254c565b92915050565b6000806040838503121561258d5761258c61235c565b5b600061259b858286016123e0565b92505060206125ac858286016123e0565b9150509250929050565b6000602082840312156125cc576125cb61235c565b5b60006125da848285016123e0565b91505092915050565b600080604083850312156125fa576125f961235c565b5b6000612608858286016123aa565b9250506020612619858286016123aa565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156126a95780860481111561268557612684612623565b5b60018516156126945780820291505b80810290506126a285612652565b9450612669565b94509492505050565b6000826126c2576001905061277e565b816126d0576000905061277e565b81600181146126e657600281146126f05761271f565b600191505061277e565b60ff84111561270257612701612623565b5b8360020a91508482111561271957612718612623565b5b5061277e565b5060208310610133831016604e8410600b84101617156127545782820a90508381111561274f5761274e612623565b5b61277e565b612761848484600161265f565b9250905081840481111561277857612777612623565b5b81810290505b9392505050565b6000612790826123bf565b915061279b83612515565b92506127c87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126b2565b905092915050565b60006127db826123bf565b91506127e6836123bf565b92508282026127f4816123bf565b9150828204841483151761280b5761280a612623565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128486020836122b5565b915061285382612812565b602082019050919050565b600060208201905081810360008301526128778161283b565b9050919050565b7f496e76616c69642077616c6c6574000000000000000000000000000000000000600082015250565b60006128b4600e836122b5565b91506128bf8261287e565b602082019050919050565b600060208201905081810360008301526128e3816128a7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006129466028836122b5565b9150612951826128ea565b604082019050919050565b6000602082019050818103600083015261297581612939565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129b6826123bf565b91506129c1836123bf565b9250826129d1576129d061297c565b5b828204905092915050565b600081905092915050565b50565b60006129f76000836129dc565b9150612a02826129e7565b600082019050919050565b6000612a18826129ea565b9150819050919050565b6000612a2d826123bf565b9150612a38836123bf565b9250828201905080821115612a5057612a4f612623565b5b92915050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000612a8c600c836122b5565b9150612a9782612a56565b602082019050919050565b60006020820190508181036000830152612abb81612a7f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b1e6024836122b5565b9150612b2982612ac2565b604082019050919050565b60006020820190508181036000830152612b4d81612b11565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612bb06022836122b5565b9150612bbb82612b54565b604082019050919050565b60006020820190508181036000830152612bdf81612ba3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c426025836122b5565b9150612c4d82612be6565b604082019050919050565b60006020820190508181036000830152612c7181612c35565b9050919050565b7f45524332303a206e6f20746f6b656e73207472616e7366657272656400000000600082015250565b6000612cae601c836122b5565b9150612cb982612c78565b602082019050919050565b60006020820190508181036000830152612cdd81612ca1565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612d1a6010836122b5565b9150612d2582612ce4565b602082019050919050565b60006020820190508181036000830152612d4981612d0d565b9050919050565b7f506c6561736520636f6e7461637420737570706f727400000000000000000000600082015250565b6000612d866016836122b5565b9150612d9182612d50565b602082019050919050565b60006020820190508181036000830152612db581612d79565b9050919050565b7f4d6178547820456e61626c6564206174206c61756e6368000000000000000000600082015250565b6000612df26017836122b5565b9150612dfd82612dbc565b602082019050919050565b60006020820190508181036000830152612e2181612de5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612e9581612393565b92915050565b600060208284031215612eb157612eb061235c565b5b6000612ebf84828501612e86565b91505092915050565b6000819050919050565b6000819050919050565b6000612ef7612ef2612eed84612ec8565b612ed2565b6123bf565b9050919050565b612f0781612edc565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f4281612381565b82525050565b6000612f548383612f39565b60208301905092915050565b6000602082019050919050565b6000612f7882612f0d565b612f828185612f18565b9350612f8d83612f29565b8060005b83811015612fbe578151612fa58882612f48565b9750612fb083612f60565b925050600181019050612f91565b5085935050505092915050565b600060a082019050612fe0600083018861246b565b612fed6020830187612efe565b8181036040830152612fff8186612f6d565b905061300e606083018561254c565b61301b608083018461246b565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006130816026836122b5565b915061308c82613025565b604082019050919050565b600060208201905081810360008301526130b081613074565b9050919050565b60006130c2826123bf565b91506130cd836123bf565b92508282039050818111156130e5576130e4612623565b5b9291505056fea2646970667358221220e9bae5862f843fbecbc99d82776cab0dcabbc274104487b5f0059fdc3197f52264736f6c63430008130033