60806040526000600a60006101000a81548160ff0219169083151502179055506188b8600b5560405180602001604052806000815250600c90805190602001906200004c92919062000300565b506040518060a00160405280600160ff168152602001600360ff168152602001600560ff168152602001601460ff168152602001603260ff16815250600d9060056200009a92919062000391565b50348015620000a857600080fd5b506040518060400160405280600d81526020017f446567656e744c6f7474657279000000000000000000000000000000000000008152506040518060400160405280600281526020017f444c00000000000000000000000000000000000000000000000000000000000081525062000135620001296200022f60201b60201c565b6200023760201b60201c565b81600390805190602001906200014d92919062000300565b5080600490805190602001906200016692919062000300565b5062000177620002fb60201b60201c565b60018190555050506001600981905550661b9ac619e7a0006012600060018152602001908152602001600020819055506652c739ff4440006012600060038152602001908152602001600020819055506689d864f949000060126000600581526020019081526020016000208190555067013fbe85edc90000601260006014815260200190815260200160002081905550670214e8348c4f00006012600060328152602001908152602001600020819055506200045f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600090565b8280546200030e90620003fa565b90600052602060002090601f0160209004810192826200033257600085556200037e565b82601f106200034d57805160ff19168380011785556200037e565b828001600101855582156200037e579182015b828111156200037d57825182559160200191906001019062000360565b5b5090506200038d9190620003db565b5090565b8260058101928215620003c8579160200282015b82811115620003c7578251829060ff16905591602001919060010190620003a5565b5b509050620003d79190620003db565b5090565b5b80821115620003f6576000816000905550600101620003dc565b5090565b600060028204905060018216806200041357607f821691505b602082108114156200042a576200042962000430565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b612fc3806200046f6000396000f3fe60806040526004361061019c5760003560e01c8063715018a6116100ec578063a22cb4651161008a578063c87b56dd11610064578063c87b56dd1461055d578063e985e9c51461059a578063f2fde38b146105d7578063faabbb06146106005761019c565b8063a22cb465146104ed578063b88d4fde14610516578063c0a58fa9146105325761019c565b806395d89b41116100c657806395d89b4114610466578063963565e114610491578063a0712d68146104ba578063a10866ef146104d65761019c565b8063715018a6146103f95780638734c6ea146104105780638da5cb5b1461043b5761019c565b806323b872dd1161015957806355f804b31161013357806355f804b3146103195780636352211e146103425780636ebb7f201461037f57806370a08231146103bc5761019c565b806323b872dd146102b857806342842e0e146102d45780634ef020b2146102f05761019c565b806301ffc9a7146101a157806306fdde03146101de578063081812fc14610209578063095ea7b31461024657806318160ddd146102625780632149b8ed1461028d575b600080fd5b3480156101ad57600080fd5b506101c860048036038101906101c391906123de565b61063d565b6040516101d591906127e3565b60405180910390f35b3480156101ea57600080fd5b506101f36106cf565b60405161020091906127fe565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612485565b610761565b60405161023d919061277c565b60405180910390f35b610260600480360381019061025b919061231d565b6107e0565b005b34801561026e57600080fd5b50610277610924565b6040516102849190612960565b60405180910390f35b34801561029957600080fd5b506102a261093b565b6040516102af91906127fe565b60405180910390f35b6102d260048036038101906102cd9190612207565b6109c9565b005b6102ee60048036038101906102e99190612207565b610cee565b005b3480156102fc57600080fd5b50610317600480360381019061031291906124b2565b610d0e565b005b34801561032557600080fd5b50610340600480360381019061033b9190612438565b610e1d565b005b34801561034e57600080fd5b5061036960048036038101906103649190612485565b610e3b565b604051610376919061277c565b60405180910390f35b34801561038b57600080fd5b506103a660048036038101906103a19190612485565b610e4d565b6040516103b39190612960565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de919061219a565b610e65565b6040516103f09190612960565b60405180910390f35b34801561040557600080fd5b5061040e610f1e565b005b34801561041c57600080fd5b50610425610f32565b60405161043291906127e3565b60405180910390f35b34801561044757600080fd5b50610450610f45565b60405161045d919061277c565b60405180910390f35b34801561047257600080fd5b5061047b610f6e565b60405161048891906127fe565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b3919061235d565b611000565b005b6104d460048036038101906104cf9190612485565b6111ba565b005b3480156104e257600080fd5b506104eb611351565b005b3480156104f957600080fd5b50610514600480360381019061050f91906122dd565b611385565b005b610530600480360381019061052b919061225a565b611490565b005b34801561053e57600080fd5b50610547611503565b6040516105549190612960565b60405180910390f35b34801561056957600080fd5b50610584600480360381019061057f9190612485565b611509565b60405161059191906127fe565b60405180910390f35b3480156105a657600080fd5b506105c160048036038101906105bc91906121c7565b6115a8565b6040516105ce91906127e3565b60405180910390f35b3480156105e357600080fd5b506105fe60048036038101906105f9919061219a565b61163c565b005b34801561060c57600080fd5b5061062760048036038101906106229190612485565b6116c0565b6040516106349190612960565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061069857506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106c85750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6060600380546106de90612b4a565b80601f016020809104026020016040519081016040528092919081815260200182805461070a90612b4a565b80156107575780601f1061072c57610100808354040283529160200191610757565b820191906000526020600020905b81548152906001019060200180831161073a57829003601f168201915b5050505050905090565b600061076c826116db565b6107a2576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006107eb82610e3b565b90508073ffffffffffffffffffffffffffffffffffffffff1661080c61173a565b73ffffffffffffffffffffffffffffffffffffffff161461086f576108388161083361173a565b6115a8565b61086e576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826007600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600061092e611742565b6002546001540303905090565b600c805461094890612b4a565b80601f016020809104026020016040519081016040528092919081815260200182805461097490612b4a565b80156109c15780601f10610996576101008083540402835291602001916109c1565b820191906000526020600020905b8154815290600101906020018083116109a457829003601f168201915b505050505081565b60006109d482611747565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a3b576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610a4784611815565b91509150610a5d8187610a5861173a565b61183c565b610aa957610a7286610a6d61173a565b6115a8565b610aa8576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610b10576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b1d8686866001611880565b8015610b2857600082555b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610bf685610bd2888887611886565b7c0200000000000000000000000000000000000000000000000000000000176118ae565b600560008681526020019081526020016000208190555060007c020000000000000000000000000000000000000000000000000000000084161415610c7e576000600185019050600060056000838152602001908152602001600020541415610c7c576001548114610c7b578360056000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610ce686868660016118d9565b505050505050565b610d0983838360405180602001604052806000815250611490565b505050565b610d166118df565b60026009541415610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5390612940565b60405180910390fd5b600260098190555060008173ffffffffffffffffffffffffffffffffffffffff1683604051610d8a90612767565b60006040518083038185875af1925050503d8060008114610dc7576040519150601f19603f3d011682016040523d82523d6000602084013e610dcc565b606091505b5050905080610e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0790612920565b60405180910390fd5b5060016009819055505050565b610e256118df565b8181600c9190610e36929190611f07565b505050565b6000610e4682611747565b9050919050565b60126020528060005260406000206000915090505481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ecd576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b610f266118df565b610f30600061195d565b565b600a60009054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f7d90612b4a565b80601f0160208091040260200160405190810160405280929190818152602001828054610fa990612b4a565b8015610ff65780601f10610fcb57610100808354040283529160200191610ff6565b820191906000526020600020905b815481529060010190602001808311610fd957829003601f168201915b5050505050905090565b6110086118df565b6002600954141561104e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104590612940565b60405180910390fd5b600260098190555081819050848490501461109e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109590612900565b60405180910390fd5b6000805b838390508110156110e7578383828181106110c0576110bf612c7e565b5b90506020020135826110d29190612a1f565b915080806110df90612bad565b9150506110a2565b50600b546110f3610924565b826110fe9190612a1f565b111561113f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611136906128c0565b60405180910390fd5b60005b858590508110156111aa5761119786868381811061116357611162612c7e565b5b9050602002016020810190611178919061219a565b85858481811061118b5761118a612c7e565b5b90506020020135611a21565b80806111a290612bad565b915050611142565b5050600160098190555050505050565b600a60009054906101000a900460ff16611209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120090612820565b60405180910390fd5b600b54611214610924565b8261121f9190612a1f565b1115611260576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611257906128a0565b60405180910390fd5b6000805b60058160ff1610156112ac57600d8160ff166005811061128757611286612c7e565b5b015483141561129957600191506112ac565b80806112a490612bf6565b915050611264565b50806112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e490612860565b60405180910390fd5b6012600083815260200190815260200160002054341015611343576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133a90612880565b60405180910390fd5b61134d3383611a21565b5050565b6113596118df565b600a60009054906101000a900460ff1615600a60006101000a81548160ff021916908315150217905550565b806008600061139261173a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661143f61173a565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161148491906127e3565b60405180910390a35050565b61149b8484846109c9565b60008373ffffffffffffffffffffffffffffffffffffffff163b146114fd576114c684848484611a3f565b6114fc576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b600b5481565b6060611514826116db565b61154a576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611554611b9f565b905060008151141561157557604051806020016040528060008152506115a0565b8061157f84611c31565b604051602001611590929190612743565b6040516020818303038152906040525b915050919050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6116446118df565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ab90612840565b60405180910390fd5b6116bd8161195d565b50565b600d81600581106116d057600080fd5b016000915090505481565b6000816116e6611742565b111580156116f5575060015482105b8015611733575060007c0100000000000000000000000000000000000000000000000000000000600560008581526020019081526020016000205416145b9050919050565b600033905090565b600090565b60008082905080611756611742565b116117de576001548110156117dd5760006005600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821614156117db575b60008114156117d15760056000836001900393508381526020019081526020016000205490506117a6565b8092505050611810565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006007600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e861189d868684611c8a565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6118e7611c93565b73ffffffffffffffffffffffffffffffffffffffff16611905610f45565b73ffffffffffffffffffffffffffffffffffffffff161461195b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611952906128e0565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611a3b828260405180602001604052806000815250611c9b565b5050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611a6561173a565b8786866040518563ffffffff1660e01b8152600401611a879493929190612797565b602060405180830381600087803b158015611aa157600080fd5b505af1925050508015611ad257506040513d601f19601f82011682018060405250810190611acf919061240b565b60015b611b4c573d8060008114611b02576040519150601f19603f3d011682016040523d82523d6000602084013e611b07565b606091505b50600081511415611b44576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600c8054611bae90612b4a565b80601f0160208091040260200160405190810160405280929190818152602001828054611bda90612b4a565b8015611c275780601f10611bfc57610100808354040283529160200191611c27565b820191906000526020600020905b815481529060010190602001808311611c0a57829003601f168201915b5050505050905090565b606060a060405101806040526020810391506000825281835b600115611c7557600184039350600a81066030018453600a8104905080611c7057611c75565b611c4a565b50828103602084039350808452505050919050565b60009392505050565b600033905090565b611ca58383611d39565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611d345760006001549050600083820390505b611ce66000868380600101945086611a3f565b611d1c576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110611cd3578160015414611d3157600080fd5b50505b505050565b600060015490506000821415611d7b576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611d886000848385611880565b600160406001901b178202600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611dff83611df06000866000611886565b611df985611ef7565b176118ae565b6005600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b818114611ea057808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050611e65565b506000821415611edc576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806001819055505050611ef260008483856118d9565b505050565b60006001821460e11b9050919050565b828054611f1390612b4a565b90600052602060002090601f016020900481019282611f355760008555611f7c565b82601f10611f4e57803560ff1916838001178555611f7c565b82800160010185558215611f7c579182015b82811115611f7b578235825591602001919060010190611f60565b5b509050611f899190611f8d565b5090565b5b80821115611fa6576000816000905550600101611f8e565b5090565b6000611fbd611fb8846129a0565b61297b565b905082815260208101848484011115611fd957611fd8612ceb565b5b611fe4848285612b08565b509392505050565b600081359050611ffb81612f1a565b92915050565b60008135905061201081612f31565b92915050565b60008083601f84011261202c5761202b612ce1565b5b8235905067ffffffffffffffff81111561204957612048612cdc565b5b60208301915083602082028301111561206557612064612ce6565b5b9250929050565b60008083601f84011261208257612081612ce1565b5b8235905067ffffffffffffffff81111561209f5761209e612cdc565b5b6020830191508360208202830111156120bb576120ba612ce6565b5b9250929050565b6000813590506120d181612f48565b92915050565b6000813590506120e681612f5f565b92915050565b6000815190506120fb81612f5f565b92915050565b600082601f83011261211657612115612ce1565b5b8135612126848260208601611faa565b91505092915050565b60008083601f84011261214557612144612ce1565b5b8235905067ffffffffffffffff81111561216257612161612cdc565b5b60208301915083600182028301111561217e5761217d612ce6565b5b9250929050565b60008135905061219481612f76565b92915050565b6000602082840312156121b0576121af612cf5565b5b60006121be84828501611fec565b91505092915050565b600080604083850312156121de576121dd612cf5565b5b60006121ec85828601611fec565b92505060206121fd85828601611fec565b9150509250929050565b6000806000606084860312156122205761221f612cf5565b5b600061222e86828701611fec565b935050602061223f86828701611fec565b925050604061225086828701612185565b9150509250925092565b6000806000806080858703121561227457612273612cf5565b5b600061228287828801611fec565b945050602061229387828801611fec565b93505060406122a487828801612185565b925050606085013567ffffffffffffffff8111156122c5576122c4612cf0565b5b6122d187828801612101565b91505092959194509250565b600080604083850312156122f4576122f3612cf5565b5b600061230285828601611fec565b9250506020612313858286016120c2565b9150509250929050565b6000806040838503121561233457612333612cf5565b5b600061234285828601611fec565b925050602061235385828601612185565b9150509250929050565b6000806000806040858703121561237757612376612cf5565b5b600085013567ffffffffffffffff81111561239557612394612cf0565b5b6123a187828801612016565b9450945050602085013567ffffffffffffffff8111156123c4576123c3612cf0565b5b6123d08782880161206c565b925092505092959194509250565b6000602082840312156123f4576123f3612cf5565b5b6000612402848285016120d7565b91505092915050565b60006020828403121561242157612420612cf5565b5b600061242f848285016120ec565b91505092915050565b6000806020838503121561244f5761244e612cf5565b5b600083013567ffffffffffffffff81111561246d5761246c612cf0565b5b6124798582860161212f565b92509250509250929050565b60006020828403121561249b5761249a612cf5565b5b60006124a984828501612185565b91505092915050565b600080604083850312156124c9576124c8612cf5565b5b60006124d785828601612185565b92505060206124e885828601612001565b9150509250929050565b6124fb81612a75565b82525050565b61250a81612a99565b82525050565b600061251b826129d1565b61252581856129e7565b9350612535818560208601612b17565b61253e81612cfa565b840191505092915050565b6000612554826129dc565b61255e8185612a03565b935061256e818560208601612b17565b61257781612cfa565b840191505092915050565b600061258d826129dc565b6125978185612a14565b93506125a7818560208601612b17565b80840191505092915050565b60006125c0602283612a03565b91506125cb82612d0b565b604082019050919050565b60006125e3602683612a03565b91506125ee82612d5a565b604082019050919050565b6000612606601583612a03565b915061261182612da9565b602082019050919050565b6000612629601f83612a03565b915061263482612dd2565b602082019050919050565b600061264c602083612a03565b915061265782612dfb565b602082019050919050565b600061266f602483612a03565b915061267a82612e24565b604082019050919050565b6000612692602083612a03565b915061269d82612e73565b602082019050919050565b60006126b5601883612a03565b91506126c082612e9c565b602082019050919050565b60006126d86000836129f8565b91506126e382612ec5565b600082019050919050565b60006126fb601083612a03565b915061270682612ec8565b602082019050919050565b600061271e601f83612a03565b915061272982612ef1565b602082019050919050565b61273d81612af1565b82525050565b600061274f8285612582565b915061275b8284612582565b91508190509392505050565b6000612772826126cb565b9150819050919050565b600060208201905061279160008301846124f2565b92915050565b60006080820190506127ac60008301876124f2565b6127b960208301866124f2565b6127c66040830185612734565b81810360608301526127d88184612510565b905095945050505050565b60006020820190506127f86000830184612501565b92915050565b600060208201905081810360008301526128188184612549565b905092915050565b60006020820190508181036000830152612839816125b3565b9050919050565b60006020820190508181036000830152612859816125d6565b9050919050565b60006020820190508181036000830152612879816125f9565b9050919050565b600060208201905081810360008301526128998161261c565b9050919050565b600060208201905081810360008301526128b98161263f565b9050919050565b600060208201905081810360008301526128d981612662565b9050919050565b600060208201905081810360008301526128f981612685565b9050919050565b60006020820190508181036000830152612919816126a8565b9050919050565b60006020820190508181036000830152612939816126ee565b9050919050565b6000602082019050818103600083015261295981612711565b9050919050565b60006020820190506129756000830184612734565b92915050565b6000612985612996565b90506129918282612b7c565b919050565b6000604051905090565b600067ffffffffffffffff8211156129bb576129ba612cad565b5b6129c482612cfa565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000612a2a82612af1565b9150612a3583612af1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a6a57612a69612c20565b5b828201905092915050565b6000612a8082612ad1565b9050919050565b6000612a9282612ad1565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015612b35578082015181840152602081019050612b1a565b83811115612b44576000848401525b50505050565b60006002820490506001821680612b6257607f821691505b60208210811415612b7657612b75612c4f565b5b50919050565b612b8582612cfa565b810181811067ffffffffffffffff82111715612ba457612ba3612cad565b5b80604052505050565b6000612bb882612af1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612beb57612bea612c20565b5b600182019050919050565b6000612c0182612afb565b915060ff821415612c1557612c14612c20565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5075626c69632073616c65206d7573742062652061637469766520746f206d6960008201527f6e74000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5175616e74697479206e6f742061636365707465640000000000000000000000600082015250565b7f45746865722076616c75652073656e7420776173206e6f7420656e6f75676800600082015250565b7f507572636861736520776f756c6420657863656564206d617820737570706c79600082015250565b7f52657365727665206d696e7420776f756c6420657863656564206d617820737560008201527f70706c7900000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4172726179206c656e67746873206d757374206d617463680000000000000000600082015250565b50565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b612f2381612a75565b8114612f2e57600080fd5b50565b612f3a81612a87565b8114612f4557600080fd5b50565b612f5181612a99565b8114612f5c57600080fd5b50565b612f6881612aa5565b8114612f7357600080fd5b50565b612f7f81612af1565b8114612f8a57600080fd5b5056fea2646970667358221220ddd984e0ef6cca9a044dd506ad3b167de1624a3b0d0dfc8219bad2c007e124b264736f6c63430008070033