From 51c954a6daac49c7840a2de6c826841f22708a78 Mon Sep 17 00:00:00 2001 From: Ladd Hoffman Date: Fri, 29 Mar 2024 12:19:34 -0500 Subject: [PATCH] add author to view post modal --- client/src/App.jsx | 13 +++++++------ client/src/assets/Proposals.json | 4 ++-- client/src/components/posts/ViewPostModal.jsx | 17 ++++++++++++++--- .../components/work-contracts/WorkRequests.jsx | 9 +++++---- client/src/contract-addresses.json | 2 +- ethereum/contract-addresses.json | 2 +- ethereum/contracts/DAO.sol | 2 ++ 7 files changed, 32 insertions(+), 17 deletions(-) diff --git a/client/src/App.jsx b/client/src/App.jsx index 370c73f..0cd53c0 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -42,7 +42,7 @@ function App() { const [showAddPost, setShowAddPost] = useState(false); const [showViewPost, setShowViewPost] = useState(false); - const [viewPostContent, setViewPostContent] = useState(''); + const [viewPost, setViewPost] = useState({}); const web3ProviderValue = useMemo(() => ({ provider, @@ -264,11 +264,12 @@ function App() { const handleShowAddPost = () => setShowAddPost(true); - const handleShowViewPost = async (post) => { - const { content } = await Post.read(post.contentId); - setViewPostContent(content); + const handleShowViewPost = useCallback(async ({ contentId }) => { + const post = await Post.read(contentId); + console.log('handleShowViewPost, read', { post }); + setViewPost(post); setShowViewPost(true); - }; + }, [setViewPost, setShowViewPost]); /* -------------------------------------------------------------------------------- */ /* --------------------------- END UI ACTIONS ------------------------------------- */ @@ -285,7 +286,7 @@ function App() { - + {!connected && } diff --git a/client/src/assets/Proposals.json b/client/src/assets/Proposals.json index 3c34f4e..2e4adea 100644 --- a/client/src/assets/Proposals.json +++ b/client/src/assets/Proposals.json @@ -245,8 +245,8 @@ "type": "function" } ], - "bytecode": "0x60a06040526040518060600160405280600060ff168152602001600160ff168152602001606460ff1681525060029060036200003d929190620001ef565b5060405180606001604052806000151515158152602001600015151515815260200160011515151581525060059060036200007a92919062000239565b5060405180606001604052806040518060400160405280600160ff168152602001600a60ff1681525081526020016040518060400160405280600160ff168152602001600a60ff1681525081526020016040518060400160405280600160ff168152602001600a60ff168152508152506006906003620000fc929190620002d9565b5060405180606001604052806040518060400160405280600260ff168152602001600360ff1681525081526020016040518060400160405280600260ff168152602001600360ff1681525081526020016040518060400160405280600260ff168152602001600360ff16815250815250600c9060036200017e929190620002d9565b503480156200018c57600080fd5b5060405162002474380380620024748339818101604052810190620001b291906200044e565b808073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050505062000480565b826003810192821562000226579160200282015b8281111562000225578251829060ff1690559160200191906001019062000203565b5b50905062000235919062000331565b5090565b826003601f01602090048101928215620002c65791602002820160005b838211156200029557835183826101000a81548160ff021916908315150217905550926020019260010160208160000104928301926001030262000256565b8015620002c45782816101000a81549060ff021916905560010160208160000104928301926001030262000295565b505b509050620002d5919062000331565b5090565b82600360020281019282156200031e579160200282015b828111156200031d578251829060026200030c92919062000350565b5091602001919060020190620002f0565b5b5090506200032d91906200039a565b5090565b5b808211156200034c57600081600090555060010162000332565b5090565b826002810192821562000387579160200282015b8281111562000386578251829060ff1690559160200191906001019062000364565b5b50905062000396919062000331565b5090565b5b80821115620003be5760008181620003b49190620003c2565b506002016200039b565b5090565b506000815560010160009055565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200040282620003d5565b9050919050565b60006200041682620003f5565b9050919050565b620004288162000409565b81146200043457600080fd5b50565b60008151905062000448816200041d565b92915050565b600060208284031215620004675762000466620003d0565b5b6000620004778482850162000437565b91505092915050565b608051611fb5620004bf600039600081816101fb015281816103a0015281816105530152818161070b01528181610db50152610f830152611fb56000f3fe6080604052600436106100555760003560e01c8063013cf08b1461005a5780635d4d20471461009d578063a3bb24cc146100cd578063b4e6a1d5146100f6578063da35c6641461011f578063ea923e631461014a575b600080fd5b34801561006657600080fd5b50610081600480360381019061007c91906111a8565b610187565b604051610094979695949392919061129c565b60405180910390f35b6100b760048036038101906100b29190611370565b6101f6565b6040516100c491906113f8565b60405180910390f35b3480156100d957600080fd5b506100f460048036038101906100ef9190611413565b61039d565b005b34801561010257600080fd5b5061011d600480360381019061011891906114e1565b610551565b005b34801561012b57600080fd5b50610134610d1c565b60405161014191906113f8565b60405180910390f35b34801561015657600080fd5b50610171600480360381019061016c91906111a8565b610d22565b60405161017e919061158a565b60405180910390f35b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040154908060050160009054906101000a900460ff16908060070154905087565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ff8692403389896040518463ffffffff1660e01b815260040161025693929190611603565b6020604051808303816000875af1158015610275573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610299919061164a565b9050600160008154809291906102ae906116a6565b9190505591506000806000848152602001908152602001600020905081816003018190555042816004018190555085816008016000600381106102f4576102f36116ee565b5b60030201600001819055508481600801600160038110610317576103166116ee565b5b6003020160000181905550838160080160026003811061033a576103396116ee565b5b6003020160000181905550348160010181905550806001015481600201819055507f9a863892f20a6b9c6cec64d611b5864be6373191ce2cacc3b05a299bce3bf80e8360405161038a91906113f8565b60405180910390a1505095945050505050565b807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016103f7919061171d565b602060405180830381865afa158015610414573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610438919061164a565b1015610479576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610470906117aa565b60405180910390fd5b600080600084815260200190815260200160002090508060060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548160070160008282546104e491906117ca565b92505081905550818160060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508181600701600082825461054591906117fe565b92505081905550505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d6906118a4565b60405180910390fd5b600080600084848101906105f391906118c4565b925092509250600080600085815260200190815260200160002090508861069c5760048160050160006101000a81548160ff0219169083600581111561063c5761063b611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb846040516106709190611963565b60405180910390a18181600201600082825461068c91906117fe565b9250508190555050505050610d14565b60008160080184600381106106b4576106b36116ee565b5b600302019050600081600101600183600101805490506106d491906117ca565b815481106106e5576106e46116ee565b5b9060005260206000209060030201905089816001018190555088816002018190555060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610774573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610798919061164a565b8a8c6107a491906117fe565b60026107b09190611991565b10159050600160058111156107c8576107c7611225565b5b8460050160009054906101000a900460ff1660058111156107ec576107eb611225565b5b0361090d5760008614610834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082b90611a1f565b60405180910390fd5b8c801561083e5750805b156108755760028460050160006101000a81548160ff0219169083600581111561086b5761086a611225565b5b0217905550610908565b60028360020154106108ea5760048460050160006101000a81548160ff021916908360058111156108a9576108a8611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb876040516108dd9190611a8b565b60405180910390a1610907565b60018360020160008282546108ff91906117fe565b925050819055505b5b610bf4565b6002600581111561092157610920611225565b5b8460050160009054906101000a900460ff16600581111561094557610944611225565b5b03610a66576001861461098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098490611b05565b60405180910390fd5b8c80156109975750805b156109ce5760038460050160006101000a81548160ff021916908360058111156109c4576109c3611225565b5b0217905550610a61565b6002836002015410610a435760048460050160006101000a81548160ff02191690836005811115610a0257610a01611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb87604051610a369190611a8b565b60405180910390a1610a60565b6001836002016000828254610a5891906117fe565b925050819055505b5b610bf3565b60036005811115610a7a57610a79611225565b5b8460050160009054906101000a900460ff166005811115610a9e57610a9d611225565b5b03610bf25760028614610ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610add90611b71565b60405180910390fd5b8c8015610af05750805b15610b5e5760058460050160006101000a81548160ff02191690836005811115610b1d57610b1c611225565b5b02179055507fd24c2047577899547bacebb29e319fc7d73f6712b5adb401d45556f34bb2aa3b87604051610b5191906113f8565b60405180910390a1610bf1565b6002836002015410610bd35760048460050160006101000a81548160ff02191690836005811115610b9257610b91611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb87604051610bc69190611a8b565b60405180910390a1610bf0565b6001836002016000828254610be891906117fe565b925050819055505b5b5b5b5b60016005811115610c0857610c07611225565b5b8460050160009054906101000a900460ff166005811115610c2c57610c2b611225565b5b03610c5257610c4d876000600a8760010154610c489190611bc0565b610f4e565b610d0c565b60026005811115610c6657610c65611225565b5b8460050160009054906101000a900460ff166005811115610c8a57610c89611225565b5b03610cb057610cab876001600a8760010154610ca69190611bc0565b610f4e565b610d0b565b60036005811115610cc457610cc3611225565b5b8460050160009054906101000a900460ff166005811115610ce857610ce7611225565b5b03610d0a57610d09876002600a8760010154610d049190611bc0565b610f4e565b5b5b5b505050505050505b505050505050565b60015481565b600080600080848152602001908152602001600020905060006005811115610d4d57610d4c611225565b5b8160050160009054906101000a900460ff166005811115610d7157610d70611225565b5b14610db1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da890611c63565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e42919061164a565b8260070154600a610e539190611991565b1015905060006301e133808360040154610e6d91906117fe565b4211905081610ef8578015610eec5760048360050160006101000a81548160ff02191690836005811115610ea457610ea3611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb85604051610ed89190611cf5565b60405180910390a160009350505050610f49565b60009350505050610f49565b60018360050160006101000a81548160ff02191690836005811115610f2057610f1f611225565b5b0217905550610f41856000600a8660010154610f3c9190611bc0565b610f4e565b600193505050505b919050565b6000806000858152602001908152602001600020905081816002016000828254610f7891906117ca565b9250508190555060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637fcf6759848460030154856008018860038110610fd957610fd86116ee565b5b600302016000015460068960038110610ff557610ff46116ee565b5b60020201600c8a6003811061100d5761100c6116ee565b5b6002020160028b60038110611025576110246116ee565b5b015460058c6003811061103b5761103a6116ee565b5b602091828204019190069054906101000a900460ff1660018e8e8e60405160200161106893929190611d23565b6040516020818303038152906040526040518a63ffffffff1660e01b815260040161109a989796959493929190611ecf565b60206040518083038185885af11580156110b8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110dd919061164a565b905060008260080185600381106110f7576110f66116ee565b5b6003020160010160018160018154018082558091505003906000526020600020906003020190508181600001819055507f4c14e16a98683e5b8bd70d51192048d0499fb3999b27ff1e9dce7e4a2c6734798683604051611158929190611f56565b60405180910390a1505050505050565b600080fd5b600080fd5b6000819050919050565b61118581611172565b811461119057600080fd5b50565b6000813590506111a28161117c565b92915050565b6000602082840312156111be576111bd611168565b5b60006111cc84828501611193565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611200826111d5565b9050919050565b611210816111f5565b82525050565b61121f81611172565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811061126557611264611225565b5b50565b600081905061127682611254565b919050565b600061128682611268565b9050919050565b6112968161127b565b82525050565b600060e0820190506112b1600083018a611207565b6112be6020830189611216565b6112cb6040830188611216565b6112d86060830187611216565b6112e56080830186611216565b6112f260a083018561128d565b6112ff60c0830184611216565b98975050505050505050565b600080fd5b600080fd5b600080fd5b60008083601f8401126113305761132f61130b565b5b8235905067ffffffffffffffff81111561134d5761134c611310565b5b60208301915083600182028301111561136957611368611315565b5b9250929050565b60008060008060006080868803121561138c5761138b611168565b5b600086013567ffffffffffffffff8111156113aa576113a961116d565b5b6113b68882890161131a565b955095505060206113c988828901611193565b93505060406113da88828901611193565b92505060606113eb88828901611193565b9150509295509295909350565b600060208201905061140d6000830184611216565b92915050565b6000806040838503121561142a57611429611168565b5b600061143885828601611193565b925050602061144985828601611193565b9150509250929050565b60008115159050919050565b61146881611453565b811461147357600080fd5b50565b6000813590506114858161145f565b92915050565b60008083601f8401126114a1576114a061130b565b5b8235905067ffffffffffffffff8111156114be576114bd611310565b5b6020830191508360018202830111156114da576114d9611315565b5b9250929050565b60008060008060008060a087890312156114fe576114fd611168565b5b600061150c89828a01611476565b965050602061151d89828a01611476565b955050604061152e89828a01611193565b945050606061153f89828a01611193565b935050608087013567ffffffffffffffff8111156115605761155f61116d565b5b61156c89828a0161148b565b92509250509295509295509295565b61158481611453565b82525050565b600060208201905061159f600083018461157b565b92915050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006115e283856115a5565b93506115ef8385846115b6565b6115f8836115c5565b840190509392505050565b60006040820190506116186000830186611207565b818103602083015261162b8184866115d6565b9050949350505050565b6000815190506116448161117c565b92915050565b6000602082840312156116605761165f611168565b5b600061166e84828501611635565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006116b182611172565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036116e3576116e2611677565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020820190506117326000830184611207565b92915050565b7f53656e6465722068617320696e73756666696369656e74205245502062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b60006117946023836115a5565b915061179f82611738565b604082019050919050565b600060208201905081810360008301526117c381611787565b9050919050565b60006117d582611172565b91506117e083611172565b92508282039050818111156117f8576117f7611677565b5b92915050565b600061180982611172565b915061181483611172565b925082820190508082111561182c5761182b611677565b5b92915050565b7f6f6e56616c6964617465206d6179206f6e6c792062652063616c6c656420627960008201527f207468652044414f20636f6e7472616374000000000000000000000000000000602082015250565b600061188e6031836115a5565b915061189982611832565b604082019050919050565b600060208201905081810360008301526118bd81611881565b9050919050565b6000806000606084860312156118dd576118dc611168565b5b60006118eb86828701611193565b93505060206118fc86828701611193565b925050604061190d86828701611193565b9150509250925092565b7f51756f72756d206e6f74206d6574000000000000000000000000000000000000600082015250565b600061194d600e836115a5565b915061195882611917565b602082019050919050565b60006040820190506119786000830184611216565b818103602083015261198981611940565b905092915050565b600061199c82611172565b91506119a783611172565b92508282026119b581611172565b915082820484148315176119cc576119cb611677565b5b5092915050565b7f5374616765203020696e646578206d69736d6174636800000000000000000000600082015250565b6000611a096016836115a5565b9150611a14826119d3565b602082019050919050565b60006020820190508181036000830152611a38816119fc565b9050919050565b7f526574727920636f756e74206578636565646564000000000000000000000000600082015250565b6000611a756014836115a5565b9150611a8082611a3f565b602082019050919050565b6000604082019050611aa06000830184611216565b8181036020830152611ab181611a68565b905092915050565b7f5374616765203120696e646578206d69736d6174636800000000000000000000600082015250565b6000611aef6016836115a5565b9150611afa82611ab9565b602082019050919050565b60006020820190508181036000830152611b1e81611ae2565b9050919050565b7f5374616765203220696e646578206d69736d6174636800000000000000000000600082015250565b6000611b5b6016836115a5565b9150611b6682611b25565b602082019050919050565b60006020820190508181036000830152611b8a81611b4e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611bcb82611172565b9150611bd683611172565b925082611be657611be5611b91565b5b828204905092915050565b7f4174746573746174696f6e206f6e6c79207065727461696e7320746f2050726f60008201527f706f73616c207374616765000000000000000000000000000000000000000000602082015250565b6000611c4d602b836115a5565b9150611c5882611bf1565b604082019050919050565b60006020820190508181036000830152611c7c81611c40565b9050919050565b7f4578706972656420776974686f7574206d656574696e6720617474657374617460008201527f696f6e207468726573686f6c6400000000000000000000000000000000000000602082015250565b6000611cdf602d836115a5565b9150611cea82611c83565b604082019050919050565b6000604082019050611d0a6000830184611216565b8181036020830152611d1b81611cd2565b905092915050565b6000606082019050611d386000830186611216565b611d456020830185611216565b611d526040830184611216565b949350505050565b600060029050919050565b600081905092915050565b6000819050919050565b611d8381611172565b82525050565b6000611d958383611d7a565b60208301905092915050565b60008160001c9050919050565b6000819050919050565b6000611dcb611dc683611da1565b611dae565b9050919050565b6000611dde8254611db8565b9050919050565b6000600182019050919050565b611dfb81611d5a565b611e058184611d65565b9250611e1082611d70565b8060005b83811015611e4857611e2582611dd2565b611e2f8782611d89565b9650611e3a83611de5565b925050600181019050611e14565b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e8a578082015181840152602081019050611e6f565b60008484015250505050565b6000611ea182611e50565b611eab8185611e5b565b9350611ebb818560208601611e6c565b611ec4816115c5565b840191505092915050565b600061014082019050611ee5600083018b611216565b611ef2602083018a611216565b611eff6040830189611df2565b611f0c6080830188611df2565b611f1960c0830187611216565b611f2660e083018661157b565b611f3461010083018561157b565b818103610120830152611f478184611e96565b90509998505050505050505050565b6000604082019050611f6b6000830185611216565b611f786020830184611216565b939250505056fea26469706673582212204637e347131d9089dc4337e619fb499a3849918f37903c2d95690294ee5f9f6c64736f6c63430008180033", - "deployedBytecode": "0x6080604052600436106100555760003560e01c8063013cf08b1461005a5780635d4d20471461009d578063a3bb24cc146100cd578063b4e6a1d5146100f6578063da35c6641461011f578063ea923e631461014a575b600080fd5b34801561006657600080fd5b50610081600480360381019061007c91906111a8565b610187565b604051610094979695949392919061129c565b60405180910390f35b6100b760048036038101906100b29190611370565b6101f6565b6040516100c491906113f8565b60405180910390f35b3480156100d957600080fd5b506100f460048036038101906100ef9190611413565b61039d565b005b34801561010257600080fd5b5061011d600480360381019061011891906114e1565b610551565b005b34801561012b57600080fd5b50610134610d1c565b60405161014191906113f8565b60405180910390f35b34801561015657600080fd5b50610171600480360381019061016c91906111a8565b610d22565b60405161017e919061158a565b60405180910390f35b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040154908060050160009054906101000a900460ff16908060070154905087565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ff8692403389896040518463ffffffff1660e01b815260040161025693929190611603565b6020604051808303816000875af1158015610275573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610299919061164a565b9050600160008154809291906102ae906116a6565b9190505591506000806000848152602001908152602001600020905081816003018190555042816004018190555085816008016000600381106102f4576102f36116ee565b5b60030201600001819055508481600801600160038110610317576103166116ee565b5b6003020160000181905550838160080160026003811061033a576103396116ee565b5b6003020160000181905550348160010181905550806001015481600201819055507f9a863892f20a6b9c6cec64d611b5864be6373191ce2cacc3b05a299bce3bf80e8360405161038a91906113f8565b60405180910390a1505095945050505050565b807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016103f7919061171d565b602060405180830381865afa158015610414573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610438919061164a565b1015610479576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610470906117aa565b60405180910390fd5b600080600084815260200190815260200160002090508060060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548160070160008282546104e491906117ca565b92505081905550818160060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508181600701600082825461054591906117fe565b92505081905550505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d6906118a4565b60405180910390fd5b600080600084848101906105f391906118c4565b925092509250600080600085815260200190815260200160002090508861069c5760048160050160006101000a81548160ff0219169083600581111561063c5761063b611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb846040516106709190611963565b60405180910390a18181600201600082825461068c91906117fe565b9250508190555050505050610d14565b60008160080184600381106106b4576106b36116ee565b5b600302019050600081600101600183600101805490506106d491906117ca565b815481106106e5576106e46116ee565b5b9060005260206000209060030201905089816001018190555088816002018190555060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610774573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610798919061164a565b8a8c6107a491906117fe565b60026107b09190611991565b10159050600160058111156107c8576107c7611225565b5b8460050160009054906101000a900460ff1660058111156107ec576107eb611225565b5b0361090d5760008614610834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082b90611a1f565b60405180910390fd5b8c801561083e5750805b156108755760028460050160006101000a81548160ff0219169083600581111561086b5761086a611225565b5b0217905550610908565b60028360020154106108ea5760048460050160006101000a81548160ff021916908360058111156108a9576108a8611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb876040516108dd9190611a8b565b60405180910390a1610907565b60018360020160008282546108ff91906117fe565b925050819055505b5b610bf4565b6002600581111561092157610920611225565b5b8460050160009054906101000a900460ff16600581111561094557610944611225565b5b03610a66576001861461098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098490611b05565b60405180910390fd5b8c80156109975750805b156109ce5760038460050160006101000a81548160ff021916908360058111156109c4576109c3611225565b5b0217905550610a61565b6002836002015410610a435760048460050160006101000a81548160ff02191690836005811115610a0257610a01611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb87604051610a369190611a8b565b60405180910390a1610a60565b6001836002016000828254610a5891906117fe565b925050819055505b5b610bf3565b60036005811115610a7a57610a79611225565b5b8460050160009054906101000a900460ff166005811115610a9e57610a9d611225565b5b03610bf25760028614610ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610add90611b71565b60405180910390fd5b8c8015610af05750805b15610b5e5760058460050160006101000a81548160ff02191690836005811115610b1d57610b1c611225565b5b02179055507fd24c2047577899547bacebb29e319fc7d73f6712b5adb401d45556f34bb2aa3b87604051610b5191906113f8565b60405180910390a1610bf1565b6002836002015410610bd35760048460050160006101000a81548160ff02191690836005811115610b9257610b91611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb87604051610bc69190611a8b565b60405180910390a1610bf0565b6001836002016000828254610be891906117fe565b925050819055505b5b5b5b5b60016005811115610c0857610c07611225565b5b8460050160009054906101000a900460ff166005811115610c2c57610c2b611225565b5b03610c5257610c4d876000600a8760010154610c489190611bc0565b610f4e565b610d0c565b60026005811115610c6657610c65611225565b5b8460050160009054906101000a900460ff166005811115610c8a57610c89611225565b5b03610cb057610cab876001600a8760010154610ca69190611bc0565b610f4e565b610d0b565b60036005811115610cc457610cc3611225565b5b8460050160009054906101000a900460ff166005811115610ce857610ce7611225565b5b03610d0a57610d09876002600a8760010154610d049190611bc0565b610f4e565b5b5b5b505050505050505b505050505050565b60015481565b600080600080848152602001908152602001600020905060006005811115610d4d57610d4c611225565b5b8160050160009054906101000a900460ff166005811115610d7157610d70611225565b5b14610db1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da890611c63565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e42919061164a565b8260070154600a610e539190611991565b1015905060006301e133808360040154610e6d91906117fe565b4211905081610ef8578015610eec5760048360050160006101000a81548160ff02191690836005811115610ea457610ea3611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb85604051610ed89190611cf5565b60405180910390a160009350505050610f49565b60009350505050610f49565b60018360050160006101000a81548160ff02191690836005811115610f2057610f1f611225565b5b0217905550610f41856000600a8660010154610f3c9190611bc0565b610f4e565b600193505050505b919050565b6000806000858152602001908152602001600020905081816002016000828254610f7891906117ca565b9250508190555060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637fcf6759848460030154856008018860038110610fd957610fd86116ee565b5b600302016000015460068960038110610ff557610ff46116ee565b5b60020201600c8a6003811061100d5761100c6116ee565b5b6002020160028b60038110611025576110246116ee565b5b015460058c6003811061103b5761103a6116ee565b5b602091828204019190069054906101000a900460ff1660018e8e8e60405160200161106893929190611d23565b6040516020818303038152906040526040518a63ffffffff1660e01b815260040161109a989796959493929190611ecf565b60206040518083038185885af11580156110b8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110dd919061164a565b905060008260080185600381106110f7576110f66116ee565b5b6003020160010160018160018154018082558091505003906000526020600020906003020190508181600001819055507f4c14e16a98683e5b8bd70d51192048d0499fb3999b27ff1e9dce7e4a2c6734798683604051611158929190611f56565b60405180910390a1505050505050565b600080fd5b600080fd5b6000819050919050565b61118581611172565b811461119057600080fd5b50565b6000813590506111a28161117c565b92915050565b6000602082840312156111be576111bd611168565b5b60006111cc84828501611193565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611200826111d5565b9050919050565b611210816111f5565b82525050565b61121f81611172565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811061126557611264611225565b5b50565b600081905061127682611254565b919050565b600061128682611268565b9050919050565b6112968161127b565b82525050565b600060e0820190506112b1600083018a611207565b6112be6020830189611216565b6112cb6040830188611216565b6112d86060830187611216565b6112e56080830186611216565b6112f260a083018561128d565b6112ff60c0830184611216565b98975050505050505050565b600080fd5b600080fd5b600080fd5b60008083601f8401126113305761132f61130b565b5b8235905067ffffffffffffffff81111561134d5761134c611310565b5b60208301915083600182028301111561136957611368611315565b5b9250929050565b60008060008060006080868803121561138c5761138b611168565b5b600086013567ffffffffffffffff8111156113aa576113a961116d565b5b6113b68882890161131a565b955095505060206113c988828901611193565b93505060406113da88828901611193565b92505060606113eb88828901611193565b9150509295509295909350565b600060208201905061140d6000830184611216565b92915050565b6000806040838503121561142a57611429611168565b5b600061143885828601611193565b925050602061144985828601611193565b9150509250929050565b60008115159050919050565b61146881611453565b811461147357600080fd5b50565b6000813590506114858161145f565b92915050565b60008083601f8401126114a1576114a061130b565b5b8235905067ffffffffffffffff8111156114be576114bd611310565b5b6020830191508360018202830111156114da576114d9611315565b5b9250929050565b60008060008060008060a087890312156114fe576114fd611168565b5b600061150c89828a01611476565b965050602061151d89828a01611476565b955050604061152e89828a01611193565b945050606061153f89828a01611193565b935050608087013567ffffffffffffffff8111156115605761155f61116d565b5b61156c89828a0161148b565b92509250509295509295509295565b61158481611453565b82525050565b600060208201905061159f600083018461157b565b92915050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006115e283856115a5565b93506115ef8385846115b6565b6115f8836115c5565b840190509392505050565b60006040820190506116186000830186611207565b818103602083015261162b8184866115d6565b9050949350505050565b6000815190506116448161117c565b92915050565b6000602082840312156116605761165f611168565b5b600061166e84828501611635565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006116b182611172565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036116e3576116e2611677565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020820190506117326000830184611207565b92915050565b7f53656e6465722068617320696e73756666696369656e74205245502062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b60006117946023836115a5565b915061179f82611738565b604082019050919050565b600060208201905081810360008301526117c381611787565b9050919050565b60006117d582611172565b91506117e083611172565b92508282039050818111156117f8576117f7611677565b5b92915050565b600061180982611172565b915061181483611172565b925082820190508082111561182c5761182b611677565b5b92915050565b7f6f6e56616c6964617465206d6179206f6e6c792062652063616c6c656420627960008201527f207468652044414f20636f6e7472616374000000000000000000000000000000602082015250565b600061188e6031836115a5565b915061189982611832565b604082019050919050565b600060208201905081810360008301526118bd81611881565b9050919050565b6000806000606084860312156118dd576118dc611168565b5b60006118eb86828701611193565b93505060206118fc86828701611193565b925050604061190d86828701611193565b9150509250925092565b7f51756f72756d206e6f74206d6574000000000000000000000000000000000000600082015250565b600061194d600e836115a5565b915061195882611917565b602082019050919050565b60006040820190506119786000830184611216565b818103602083015261198981611940565b905092915050565b600061199c82611172565b91506119a783611172565b92508282026119b581611172565b915082820484148315176119cc576119cb611677565b5b5092915050565b7f5374616765203020696e646578206d69736d6174636800000000000000000000600082015250565b6000611a096016836115a5565b9150611a14826119d3565b602082019050919050565b60006020820190508181036000830152611a38816119fc565b9050919050565b7f526574727920636f756e74206578636565646564000000000000000000000000600082015250565b6000611a756014836115a5565b9150611a8082611a3f565b602082019050919050565b6000604082019050611aa06000830184611216565b8181036020830152611ab181611a68565b905092915050565b7f5374616765203120696e646578206d69736d6174636800000000000000000000600082015250565b6000611aef6016836115a5565b9150611afa82611ab9565b602082019050919050565b60006020820190508181036000830152611b1e81611ae2565b9050919050565b7f5374616765203220696e646578206d69736d6174636800000000000000000000600082015250565b6000611b5b6016836115a5565b9150611b6682611b25565b602082019050919050565b60006020820190508181036000830152611b8a81611b4e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611bcb82611172565b9150611bd683611172565b925082611be657611be5611b91565b5b828204905092915050565b7f4174746573746174696f6e206f6e6c79207065727461696e7320746f2050726f60008201527f706f73616c207374616765000000000000000000000000000000000000000000602082015250565b6000611c4d602b836115a5565b9150611c5882611bf1565b604082019050919050565b60006020820190508181036000830152611c7c81611c40565b9050919050565b7f4578706972656420776974686f7574206d656574696e6720617474657374617460008201527f696f6e207468726573686f6c6400000000000000000000000000000000000000602082015250565b6000611cdf602d836115a5565b9150611cea82611c83565b604082019050919050565b6000604082019050611d0a6000830184611216565b8181036020830152611d1b81611cd2565b905092915050565b6000606082019050611d386000830186611216565b611d456020830185611216565b611d526040830184611216565b949350505050565b600060029050919050565b600081905092915050565b6000819050919050565b611d8381611172565b82525050565b6000611d958383611d7a565b60208301905092915050565b60008160001c9050919050565b6000819050919050565b6000611dcb611dc683611da1565b611dae565b9050919050565b6000611dde8254611db8565b9050919050565b6000600182019050919050565b611dfb81611d5a565b611e058184611d65565b9250611e1082611d70565b8060005b83811015611e4857611e2582611dd2565b611e2f8782611d89565b9650611e3a83611de5565b925050600181019050611e14565b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e8a578082015181840152602081019050611e6f565b60008484015250505050565b6000611ea182611e50565b611eab8185611e5b565b9350611ebb818560208601611e6c565b611ec4816115c5565b840191505092915050565b600061014082019050611ee5600083018b611216565b611ef2602083018a611216565b611eff6040830189611df2565b611f0c6080830188611df2565b611f1960c0830187611216565b611f2660e083018661157b565b611f3461010083018561157b565b818103610120830152611f478184611e96565b90509998505050505050505050565b6000604082019050611f6b6000830185611216565b611f786020830184611216565b939250505056fea26469706673582212204637e347131d9089dc4337e619fb499a3849918f37903c2d95690294ee5f9f6c64736f6c63430008180033", + "bytecode": "0x60a06040526040518060600160405280600060ff168152602001600160ff168152602001606460ff1681525060029060036200003d929190620001ef565b5060405180606001604052806000151515158152602001600015151515815260200160011515151581525060059060036200007a92919062000239565b5060405180606001604052806040518060400160405280600160ff168152602001600a60ff1681525081526020016040518060400160405280600160ff168152602001600a60ff1681525081526020016040518060400160405280600160ff168152602001600a60ff168152508152506006906003620000fc929190620002d9565b5060405180606001604052806040518060400160405280600260ff168152602001600360ff1681525081526020016040518060400160405280600260ff168152602001600360ff1681525081526020016040518060400160405280600260ff168152602001600360ff16815250815250600c9060036200017e929190620002d9565b503480156200018c57600080fd5b5060405162002474380380620024748339818101604052810190620001b291906200044e565b808073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050505062000480565b826003810192821562000226579160200282015b8281111562000225578251829060ff1690559160200191906001019062000203565b5b50905062000235919062000331565b5090565b826003601f01602090048101928215620002c65791602002820160005b838211156200029557835183826101000a81548160ff021916908315150217905550926020019260010160208160000104928301926001030262000256565b8015620002c45782816101000a81549060ff021916905560010160208160000104928301926001030262000295565b505b509050620002d5919062000331565b5090565b82600360020281019282156200031e579160200282015b828111156200031d578251829060026200030c92919062000350565b5091602001919060020190620002f0565b5b5090506200032d91906200039a565b5090565b5b808211156200034c57600081600090555060010162000332565b5090565b826002810192821562000387579160200282015b8281111562000386578251829060ff1690559160200191906001019062000364565b5b50905062000396919062000331565b5090565b5b80821115620003be5760008181620003b49190620003c2565b506002016200039b565b5090565b506000815560010160009055565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200040282620003d5565b9050919050565b60006200041682620003f5565b9050919050565b620004288162000409565b81146200043457600080fd5b50565b60008151905062000448816200041d565b92915050565b600060208284031215620004675762000466620003d0565b5b6000620004778482850162000437565b91505092915050565b608051611fb5620004bf600039600081816101fb015281816103a0015281816105530152818161070b01528181610db50152610f830152611fb56000f3fe6080604052600436106100555760003560e01c8063013cf08b1461005a5780635d4d20471461009d578063a3bb24cc146100cd578063b4e6a1d5146100f6578063da35c6641461011f578063ea923e631461014a575b600080fd5b34801561006657600080fd5b50610081600480360381019061007c91906111a8565b610187565b604051610094979695949392919061129c565b60405180910390f35b6100b760048036038101906100b29190611370565b6101f6565b6040516100c491906113f8565b60405180910390f35b3480156100d957600080fd5b506100f460048036038101906100ef9190611413565b61039d565b005b34801561010257600080fd5b5061011d600480360381019061011891906114e1565b610551565b005b34801561012b57600080fd5b50610134610d1c565b60405161014191906113f8565b60405180910390f35b34801561015657600080fd5b50610171600480360381019061016c91906111a8565b610d22565b60405161017e919061158a565b60405180910390f35b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040154908060050160009054906101000a900460ff16908060070154905087565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ff8692403389896040518463ffffffff1660e01b815260040161025693929190611603565b6020604051808303816000875af1158015610275573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610299919061164a565b9050600160008154809291906102ae906116a6565b9190505591506000806000848152602001908152602001600020905081816003018190555042816004018190555085816008016000600381106102f4576102f36116ee565b5b60030201600001819055508481600801600160038110610317576103166116ee565b5b6003020160000181905550838160080160026003811061033a576103396116ee565b5b6003020160000181905550348160010181905550806001015481600201819055507f9a863892f20a6b9c6cec64d611b5864be6373191ce2cacc3b05a299bce3bf80e8360405161038a91906113f8565b60405180910390a1505095945050505050565b807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016103f7919061171d565b602060405180830381865afa158015610414573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610438919061164a565b1015610479576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610470906117aa565b60405180910390fd5b600080600084815260200190815260200160002090508060060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548160070160008282546104e491906117ca565b92505081905550818160060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508181600701600082825461054591906117fe565b92505081905550505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d6906118a4565b60405180910390fd5b600080600084848101906105f391906118c4565b925092509250600080600085815260200190815260200160002090508861069c5760048160050160006101000a81548160ff0219169083600581111561063c5761063b611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb846040516106709190611963565b60405180910390a18181600201600082825461068c91906117fe565b9250508190555050505050610d14565b60008160080184600381106106b4576106b36116ee565b5b600302019050600081600101600183600101805490506106d491906117ca565b815481106106e5576106e46116ee565b5b9060005260206000209060030201905089816001018190555088816002018190555060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610774573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610798919061164a565b8a8c6107a491906117fe565b60026107b09190611991565b10159050600160058111156107c8576107c7611225565b5b8460050160009054906101000a900460ff1660058111156107ec576107eb611225565b5b0361090d5760008614610834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082b90611a1f565b60405180910390fd5b8c801561083e5750805b156108755760028460050160006101000a81548160ff0219169083600581111561086b5761086a611225565b5b0217905550610908565b60028360020154106108ea5760048460050160006101000a81548160ff021916908360058111156108a9576108a8611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb876040516108dd9190611a8b565b60405180910390a1610907565b60018360020160008282546108ff91906117fe565b925050819055505b5b610bf4565b6002600581111561092157610920611225565b5b8460050160009054906101000a900460ff16600581111561094557610944611225565b5b03610a66576001861461098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098490611b05565b60405180910390fd5b8c80156109975750805b156109ce5760038460050160006101000a81548160ff021916908360058111156109c4576109c3611225565b5b0217905550610a61565b6002836002015410610a435760048460050160006101000a81548160ff02191690836005811115610a0257610a01611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb87604051610a369190611a8b565b60405180910390a1610a60565b6001836002016000828254610a5891906117fe565b925050819055505b5b610bf3565b60036005811115610a7a57610a79611225565b5b8460050160009054906101000a900460ff166005811115610a9e57610a9d611225565b5b03610bf25760028614610ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610add90611b71565b60405180910390fd5b8c8015610af05750805b15610b5e5760058460050160006101000a81548160ff02191690836005811115610b1d57610b1c611225565b5b02179055507fd24c2047577899547bacebb29e319fc7d73f6712b5adb401d45556f34bb2aa3b87604051610b5191906113f8565b60405180910390a1610bf1565b6002836002015410610bd35760048460050160006101000a81548160ff02191690836005811115610b9257610b91611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb87604051610bc69190611a8b565b60405180910390a1610bf0565b6001836002016000828254610be891906117fe565b925050819055505b5b5b5b5b60016005811115610c0857610c07611225565b5b8460050160009054906101000a900460ff166005811115610c2c57610c2b611225565b5b03610c5257610c4d876000600a8760010154610c489190611bc0565b610f4e565b610d0c565b60026005811115610c6657610c65611225565b5b8460050160009054906101000a900460ff166005811115610c8a57610c89611225565b5b03610cb057610cab876001600a8760010154610ca69190611bc0565b610f4e565b610d0b565b60036005811115610cc457610cc3611225565b5b8460050160009054906101000a900460ff166005811115610ce857610ce7611225565b5b03610d0a57610d09876002600a8760010154610d049190611bc0565b610f4e565b5b5b5b505050505050505b505050505050565b60015481565b600080600080848152602001908152602001600020905060006005811115610d4d57610d4c611225565b5b8160050160009054906101000a900460ff166005811115610d7157610d70611225565b5b14610db1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da890611c63565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e42919061164a565b8260070154600a610e539190611991565b1015905060006301e133808360040154610e6d91906117fe565b4211905081610ef8578015610eec5760048360050160006101000a81548160ff02191690836005811115610ea457610ea3611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb85604051610ed89190611cf5565b60405180910390a160009350505050610f49565b60009350505050610f49565b60018360050160006101000a81548160ff02191690836005811115610f2057610f1f611225565b5b0217905550610f41856000600a8660010154610f3c9190611bc0565b610f4e565b600193505050505b919050565b6000806000858152602001908152602001600020905081816002016000828254610f7891906117ca565b9250508190555060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637fcf6759848460030154856008018860038110610fd957610fd86116ee565b5b600302016000015460068960038110610ff557610ff46116ee565b5b60020201600c8a6003811061100d5761100c6116ee565b5b6002020160028b60038110611025576110246116ee565b5b015460058c6003811061103b5761103a6116ee565b5b602091828204019190069054906101000a900460ff1660018e8e8e60405160200161106893929190611d23565b6040516020818303038152906040526040518a63ffffffff1660e01b815260040161109a989796959493929190611ecf565b60206040518083038185885af11580156110b8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110dd919061164a565b905060008260080185600381106110f7576110f66116ee565b5b6003020160010160018160018154018082558091505003906000526020600020906003020190508181600001819055507f4c14e16a98683e5b8bd70d51192048d0499fb3999b27ff1e9dce7e4a2c6734798683604051611158929190611f56565b60405180910390a1505050505050565b600080fd5b600080fd5b6000819050919050565b61118581611172565b811461119057600080fd5b50565b6000813590506111a28161117c565b92915050565b6000602082840312156111be576111bd611168565b5b60006111cc84828501611193565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611200826111d5565b9050919050565b611210816111f5565b82525050565b61121f81611172565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811061126557611264611225565b5b50565b600081905061127682611254565b919050565b600061128682611268565b9050919050565b6112968161127b565b82525050565b600060e0820190506112b1600083018a611207565b6112be6020830189611216565b6112cb6040830188611216565b6112d86060830187611216565b6112e56080830186611216565b6112f260a083018561128d565b6112ff60c0830184611216565b98975050505050505050565b600080fd5b600080fd5b600080fd5b60008083601f8401126113305761132f61130b565b5b8235905067ffffffffffffffff81111561134d5761134c611310565b5b60208301915083600182028301111561136957611368611315565b5b9250929050565b60008060008060006080868803121561138c5761138b611168565b5b600086013567ffffffffffffffff8111156113aa576113a961116d565b5b6113b68882890161131a565b955095505060206113c988828901611193565b93505060406113da88828901611193565b92505060606113eb88828901611193565b9150509295509295909350565b600060208201905061140d6000830184611216565b92915050565b6000806040838503121561142a57611429611168565b5b600061143885828601611193565b925050602061144985828601611193565b9150509250929050565b60008115159050919050565b61146881611453565b811461147357600080fd5b50565b6000813590506114858161145f565b92915050565b60008083601f8401126114a1576114a061130b565b5b8235905067ffffffffffffffff8111156114be576114bd611310565b5b6020830191508360018202830111156114da576114d9611315565b5b9250929050565b60008060008060008060a087890312156114fe576114fd611168565b5b600061150c89828a01611476565b965050602061151d89828a01611476565b955050604061152e89828a01611193565b945050606061153f89828a01611193565b935050608087013567ffffffffffffffff8111156115605761155f61116d565b5b61156c89828a0161148b565b92509250509295509295509295565b61158481611453565b82525050565b600060208201905061159f600083018461157b565b92915050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006115e283856115a5565b93506115ef8385846115b6565b6115f8836115c5565b840190509392505050565b60006040820190506116186000830186611207565b818103602083015261162b8184866115d6565b9050949350505050565b6000815190506116448161117c565b92915050565b6000602082840312156116605761165f611168565b5b600061166e84828501611635565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006116b182611172565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036116e3576116e2611677565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020820190506117326000830184611207565b92915050565b7f53656e6465722068617320696e73756666696369656e74205245502062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b60006117946023836115a5565b915061179f82611738565b604082019050919050565b600060208201905081810360008301526117c381611787565b9050919050565b60006117d582611172565b91506117e083611172565b92508282039050818111156117f8576117f7611677565b5b92915050565b600061180982611172565b915061181483611172565b925082820190508082111561182c5761182b611677565b5b92915050565b7f6f6e56616c6964617465206d6179206f6e6c792062652063616c6c656420627960008201527f207468652044414f20636f6e7472616374000000000000000000000000000000602082015250565b600061188e6031836115a5565b915061189982611832565b604082019050919050565b600060208201905081810360008301526118bd81611881565b9050919050565b6000806000606084860312156118dd576118dc611168565b5b60006118eb86828701611193565b93505060206118fc86828701611193565b925050604061190d86828701611193565b9150509250925092565b7f51756f72756d206e6f74206d6574000000000000000000000000000000000000600082015250565b600061194d600e836115a5565b915061195882611917565b602082019050919050565b60006040820190506119786000830184611216565b818103602083015261198981611940565b905092915050565b600061199c82611172565b91506119a783611172565b92508282026119b581611172565b915082820484148315176119cc576119cb611677565b5b5092915050565b7f5374616765203020696e646578206d69736d6174636800000000000000000000600082015250565b6000611a096016836115a5565b9150611a14826119d3565b602082019050919050565b60006020820190508181036000830152611a38816119fc565b9050919050565b7f526574727920636f756e74206578636565646564000000000000000000000000600082015250565b6000611a756014836115a5565b9150611a8082611a3f565b602082019050919050565b6000604082019050611aa06000830184611216565b8181036020830152611ab181611a68565b905092915050565b7f5374616765203120696e646578206d69736d6174636800000000000000000000600082015250565b6000611aef6016836115a5565b9150611afa82611ab9565b602082019050919050565b60006020820190508181036000830152611b1e81611ae2565b9050919050565b7f5374616765203220696e646578206d69736d6174636800000000000000000000600082015250565b6000611b5b6016836115a5565b9150611b6682611b25565b602082019050919050565b60006020820190508181036000830152611b8a81611b4e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611bcb82611172565b9150611bd683611172565b925082611be657611be5611b91565b5b828204905092915050565b7f4174746573746174696f6e206f6e6c79207065727461696e7320746f2050726f60008201527f706f73616c207374616765000000000000000000000000000000000000000000602082015250565b6000611c4d602b836115a5565b9150611c5882611bf1565b604082019050919050565b60006020820190508181036000830152611c7c81611c40565b9050919050565b7f4578706972656420776974686f7574206d656574696e6720617474657374617460008201527f696f6e207468726573686f6c6400000000000000000000000000000000000000602082015250565b6000611cdf602d836115a5565b9150611cea82611c83565b604082019050919050565b6000604082019050611d0a6000830184611216565b8181036020830152611d1b81611cd2565b905092915050565b6000606082019050611d386000830186611216565b611d456020830185611216565b611d526040830184611216565b949350505050565b600060029050919050565b600081905092915050565b6000819050919050565b611d8381611172565b82525050565b6000611d958383611d7a565b60208301905092915050565b60008160001c9050919050565b6000819050919050565b6000611dcb611dc683611da1565b611dae565b9050919050565b6000611dde8254611db8565b9050919050565b6000600182019050919050565b611dfb81611d5a565b611e058184611d65565b9250611e1082611d70565b8060005b83811015611e4857611e2582611dd2565b611e2f8782611d89565b9650611e3a83611de5565b925050600181019050611e14565b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e8a578082015181840152602081019050611e6f565b60008484015250505050565b6000611ea182611e50565b611eab8185611e5b565b9350611ebb818560208601611e6c565b611ec4816115c5565b840191505092915050565b600061014082019050611ee5600083018b611216565b611ef2602083018a611216565b611eff6040830189611df2565b611f0c6080830188611df2565b611f1960c0830187611216565b611f2660e083018661157b565b611f3461010083018561157b565b818103610120830152611f478184611e96565b90509998505050505050505050565b6000604082019050611f6b6000830185611216565b611f786020830184611216565b939250505056fea264697066735822122091b7329ae48658f3aa81236999ab158177b84433948c6a25378a56cb489d7e2c64736f6c63430008180033", + "deployedBytecode": "0x6080604052600436106100555760003560e01c8063013cf08b1461005a5780635d4d20471461009d578063a3bb24cc146100cd578063b4e6a1d5146100f6578063da35c6641461011f578063ea923e631461014a575b600080fd5b34801561006657600080fd5b50610081600480360381019061007c91906111a8565b610187565b604051610094979695949392919061129c565b60405180910390f35b6100b760048036038101906100b29190611370565b6101f6565b6040516100c491906113f8565b60405180910390f35b3480156100d957600080fd5b506100f460048036038101906100ef9190611413565b61039d565b005b34801561010257600080fd5b5061011d600480360381019061011891906114e1565b610551565b005b34801561012b57600080fd5b50610134610d1c565b60405161014191906113f8565b60405180910390f35b34801561015657600080fd5b50610171600480360381019061016c91906111a8565b610d22565b60405161017e919061158a565b60405180910390f35b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040154908060050160009054906101000a900460ff16908060070154905087565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ff8692403389896040518463ffffffff1660e01b815260040161025693929190611603565b6020604051808303816000875af1158015610275573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610299919061164a565b9050600160008154809291906102ae906116a6565b9190505591506000806000848152602001908152602001600020905081816003018190555042816004018190555085816008016000600381106102f4576102f36116ee565b5b60030201600001819055508481600801600160038110610317576103166116ee565b5b6003020160000181905550838160080160026003811061033a576103396116ee565b5b6003020160000181905550348160010181905550806001015481600201819055507f9a863892f20a6b9c6cec64d611b5864be6373191ce2cacc3b05a299bce3bf80e8360405161038a91906113f8565b60405180910390a1505095945050505050565b807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016103f7919061171d565b602060405180830381865afa158015610414573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610438919061164a565b1015610479576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610470906117aa565b60405180910390fd5b600080600084815260200190815260200160002090508060060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548160070160008282546104e491906117ca565b92505081905550818160060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508181600701600082825461054591906117fe565b92505081905550505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d6906118a4565b60405180910390fd5b600080600084848101906105f391906118c4565b925092509250600080600085815260200190815260200160002090508861069c5760048160050160006101000a81548160ff0219169083600581111561063c5761063b611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb846040516106709190611963565b60405180910390a18181600201600082825461068c91906117fe565b9250508190555050505050610d14565b60008160080184600381106106b4576106b36116ee565b5b600302019050600081600101600183600101805490506106d491906117ca565b815481106106e5576106e46116ee565b5b9060005260206000209060030201905089816001018190555088816002018190555060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610774573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610798919061164a565b8a8c6107a491906117fe565b60026107b09190611991565b10159050600160058111156107c8576107c7611225565b5b8460050160009054906101000a900460ff1660058111156107ec576107eb611225565b5b0361090d5760008614610834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082b90611a1f565b60405180910390fd5b8c801561083e5750805b156108755760028460050160006101000a81548160ff0219169083600581111561086b5761086a611225565b5b0217905550610908565b60028360020154106108ea5760048460050160006101000a81548160ff021916908360058111156108a9576108a8611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb876040516108dd9190611a8b565b60405180910390a1610907565b60018360020160008282546108ff91906117fe565b925050819055505b5b610bf4565b6002600581111561092157610920611225565b5b8460050160009054906101000a900460ff16600581111561094557610944611225565b5b03610a66576001861461098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098490611b05565b60405180910390fd5b8c80156109975750805b156109ce5760038460050160006101000a81548160ff021916908360058111156109c4576109c3611225565b5b0217905550610a61565b6002836002015410610a435760048460050160006101000a81548160ff02191690836005811115610a0257610a01611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb87604051610a369190611a8b565b60405180910390a1610a60565b6001836002016000828254610a5891906117fe565b925050819055505b5b610bf3565b60036005811115610a7a57610a79611225565b5b8460050160009054906101000a900460ff166005811115610a9e57610a9d611225565b5b03610bf25760028614610ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610add90611b71565b60405180910390fd5b8c8015610af05750805b15610b5e5760058460050160006101000a81548160ff02191690836005811115610b1d57610b1c611225565b5b02179055507fd24c2047577899547bacebb29e319fc7d73f6712b5adb401d45556f34bb2aa3b87604051610b5191906113f8565b60405180910390a1610bf1565b6002836002015410610bd35760048460050160006101000a81548160ff02191690836005811115610b9257610b91611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb87604051610bc69190611a8b565b60405180910390a1610bf0565b6001836002016000828254610be891906117fe565b925050819055505b5b5b5b5b60016005811115610c0857610c07611225565b5b8460050160009054906101000a900460ff166005811115610c2c57610c2b611225565b5b03610c5257610c4d876000600a8760010154610c489190611bc0565b610f4e565b610d0c565b60026005811115610c6657610c65611225565b5b8460050160009054906101000a900460ff166005811115610c8a57610c89611225565b5b03610cb057610cab876001600a8760010154610ca69190611bc0565b610f4e565b610d0b565b60036005811115610cc457610cc3611225565b5b8460050160009054906101000a900460ff166005811115610ce857610ce7611225565b5b03610d0a57610d09876002600a8760010154610d049190611bc0565b610f4e565b5b5b5b505050505050505b505050505050565b60015481565b600080600080848152602001908152602001600020905060006005811115610d4d57610d4c611225565b5b8160050160009054906101000a900460ff166005811115610d7157610d70611225565b5b14610db1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da890611c63565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e42919061164a565b8260070154600a610e539190611991565b1015905060006301e133808360040154610e6d91906117fe565b4211905081610ef8578015610eec5760048360050160006101000a81548160ff02191690836005811115610ea457610ea3611225565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb85604051610ed89190611cf5565b60405180910390a160009350505050610f49565b60009350505050610f49565b60018360050160006101000a81548160ff02191690836005811115610f2057610f1f611225565b5b0217905550610f41856000600a8660010154610f3c9190611bc0565b610f4e565b600193505050505b919050565b6000806000858152602001908152602001600020905081816002016000828254610f7891906117ca565b9250508190555060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637fcf6759848460030154856008018860038110610fd957610fd86116ee565b5b600302016000015460068960038110610ff557610ff46116ee565b5b60020201600c8a6003811061100d5761100c6116ee565b5b6002020160028b60038110611025576110246116ee565b5b015460058c6003811061103b5761103a6116ee565b5b602091828204019190069054906101000a900460ff1660018e8e8e60405160200161106893929190611d23565b6040516020818303038152906040526040518a63ffffffff1660e01b815260040161109a989796959493929190611ecf565b60206040518083038185885af11580156110b8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110dd919061164a565b905060008260080185600381106110f7576110f66116ee565b5b6003020160010160018160018154018082558091505003906000526020600020906003020190508181600001819055507f4c14e16a98683e5b8bd70d51192048d0499fb3999b27ff1e9dce7e4a2c6734798683604051611158929190611f56565b60405180910390a1505050505050565b600080fd5b600080fd5b6000819050919050565b61118581611172565b811461119057600080fd5b50565b6000813590506111a28161117c565b92915050565b6000602082840312156111be576111bd611168565b5b60006111cc84828501611193565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611200826111d5565b9050919050565b611210816111f5565b82525050565b61121f81611172565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811061126557611264611225565b5b50565b600081905061127682611254565b919050565b600061128682611268565b9050919050565b6112968161127b565b82525050565b600060e0820190506112b1600083018a611207565b6112be6020830189611216565b6112cb6040830188611216565b6112d86060830187611216565b6112e56080830186611216565b6112f260a083018561128d565b6112ff60c0830184611216565b98975050505050505050565b600080fd5b600080fd5b600080fd5b60008083601f8401126113305761132f61130b565b5b8235905067ffffffffffffffff81111561134d5761134c611310565b5b60208301915083600182028301111561136957611368611315565b5b9250929050565b60008060008060006080868803121561138c5761138b611168565b5b600086013567ffffffffffffffff8111156113aa576113a961116d565b5b6113b68882890161131a565b955095505060206113c988828901611193565b93505060406113da88828901611193565b92505060606113eb88828901611193565b9150509295509295909350565b600060208201905061140d6000830184611216565b92915050565b6000806040838503121561142a57611429611168565b5b600061143885828601611193565b925050602061144985828601611193565b9150509250929050565b60008115159050919050565b61146881611453565b811461147357600080fd5b50565b6000813590506114858161145f565b92915050565b60008083601f8401126114a1576114a061130b565b5b8235905067ffffffffffffffff8111156114be576114bd611310565b5b6020830191508360018202830111156114da576114d9611315565b5b9250929050565b60008060008060008060a087890312156114fe576114fd611168565b5b600061150c89828a01611476565b965050602061151d89828a01611476565b955050604061152e89828a01611193565b945050606061153f89828a01611193565b935050608087013567ffffffffffffffff8111156115605761155f61116d565b5b61156c89828a0161148b565b92509250509295509295509295565b61158481611453565b82525050565b600060208201905061159f600083018461157b565b92915050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006115e283856115a5565b93506115ef8385846115b6565b6115f8836115c5565b840190509392505050565b60006040820190506116186000830186611207565b818103602083015261162b8184866115d6565b9050949350505050565b6000815190506116448161117c565b92915050565b6000602082840312156116605761165f611168565b5b600061166e84828501611635565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006116b182611172565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036116e3576116e2611677565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020820190506117326000830184611207565b92915050565b7f53656e6465722068617320696e73756666696369656e74205245502062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b60006117946023836115a5565b915061179f82611738565b604082019050919050565b600060208201905081810360008301526117c381611787565b9050919050565b60006117d582611172565b91506117e083611172565b92508282039050818111156117f8576117f7611677565b5b92915050565b600061180982611172565b915061181483611172565b925082820190508082111561182c5761182b611677565b5b92915050565b7f6f6e56616c6964617465206d6179206f6e6c792062652063616c6c656420627960008201527f207468652044414f20636f6e7472616374000000000000000000000000000000602082015250565b600061188e6031836115a5565b915061189982611832565b604082019050919050565b600060208201905081810360008301526118bd81611881565b9050919050565b6000806000606084860312156118dd576118dc611168565b5b60006118eb86828701611193565b93505060206118fc86828701611193565b925050604061190d86828701611193565b9150509250925092565b7f51756f72756d206e6f74206d6574000000000000000000000000000000000000600082015250565b600061194d600e836115a5565b915061195882611917565b602082019050919050565b60006040820190506119786000830184611216565b818103602083015261198981611940565b905092915050565b600061199c82611172565b91506119a783611172565b92508282026119b581611172565b915082820484148315176119cc576119cb611677565b5b5092915050565b7f5374616765203020696e646578206d69736d6174636800000000000000000000600082015250565b6000611a096016836115a5565b9150611a14826119d3565b602082019050919050565b60006020820190508181036000830152611a38816119fc565b9050919050565b7f526574727920636f756e74206578636565646564000000000000000000000000600082015250565b6000611a756014836115a5565b9150611a8082611a3f565b602082019050919050565b6000604082019050611aa06000830184611216565b8181036020830152611ab181611a68565b905092915050565b7f5374616765203120696e646578206d69736d6174636800000000000000000000600082015250565b6000611aef6016836115a5565b9150611afa82611ab9565b602082019050919050565b60006020820190508181036000830152611b1e81611ae2565b9050919050565b7f5374616765203220696e646578206d69736d6174636800000000000000000000600082015250565b6000611b5b6016836115a5565b9150611b6682611b25565b602082019050919050565b60006020820190508181036000830152611b8a81611b4e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611bcb82611172565b9150611bd683611172565b925082611be657611be5611b91565b5b828204905092915050565b7f4174746573746174696f6e206f6e6c79207065727461696e7320746f2050726f60008201527f706f73616c207374616765000000000000000000000000000000000000000000602082015250565b6000611c4d602b836115a5565b9150611c5882611bf1565b604082019050919050565b60006020820190508181036000830152611c7c81611c40565b9050919050565b7f4578706972656420776974686f7574206d656574696e6720617474657374617460008201527f696f6e207468726573686f6c6400000000000000000000000000000000000000602082015250565b6000611cdf602d836115a5565b9150611cea82611c83565b604082019050919050565b6000604082019050611d0a6000830184611216565b8181036020830152611d1b81611cd2565b905092915050565b6000606082019050611d386000830186611216565b611d456020830185611216565b611d526040830184611216565b949350505050565b600060029050919050565b600081905092915050565b6000819050919050565b611d8381611172565b82525050565b6000611d958383611d7a565b60208301905092915050565b60008160001c9050919050565b6000819050919050565b6000611dcb611dc683611da1565b611dae565b9050919050565b6000611dde8254611db8565b9050919050565b6000600182019050919050565b611dfb81611d5a565b611e058184611d65565b9250611e1082611d70565b8060005b83811015611e4857611e2582611dd2565b611e2f8782611d89565b9650611e3a83611de5565b925050600181019050611e14565b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e8a578082015181840152602081019050611e6f565b60008484015250505050565b6000611ea182611e50565b611eab8185611e5b565b9350611ebb818560208601611e6c565b611ec4816115c5565b840191505092915050565b600061014082019050611ee5600083018b611216565b611ef2602083018a611216565b611eff6040830189611df2565b611f0c6080830188611df2565b611f1960c0830187611216565b611f2660e083018661157b565b611f3461010083018561157b565b818103610120830152611f478184611e96565b90509998505050505050505050565b6000604082019050611f6b6000830185611216565b611f786020830184611216565b939250505056fea264697066735822122091b7329ae48658f3aa81236999ab158177b84433948c6a25378a56cb489d7e2c64736f6c63430008180033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/client/src/components/posts/ViewPostModal.jsx b/client/src/components/posts/ViewPostModal.jsx index 8da0c79..69f3903 100644 --- a/client/src/components/posts/ViewPostModal.jsx +++ b/client/src/components/posts/ViewPostModal.jsx @@ -1,18 +1,28 @@ import Button from 'react-bootstrap/Button'; import Modal from 'react-bootstrap/Modal'; import PropTypes from 'prop-types'; +import { useMemo } from 'react'; function ViewPostModal({ - show, setShow, title, content, + show, setShow, title, post, }) { const handleClose = () => setShow(false); + const { content, author } = useMemo(() => post, [post]); return ( - {title} + + {title} + +
+ Author: + {' '} + {author} +
+

{content}

@@ -30,11 +40,12 @@ ViewPostModal.propTypes = { show: PropTypes.bool.isRequired, setShow: PropTypes.func.isRequired, title: PropTypes.string, - content: PropTypes.string.isRequired, + post: PropTypes.object, // eslint-disable-line react/forbid-prop-types }; ViewPostModal.defaultProps = { title: 'View Post', + post: {}, }; export default ViewPostModal; diff --git a/client/src/components/work-contracts/WorkRequests.jsx b/client/src/components/work-contracts/WorkRequests.jsx index f3406e3..8a480cd 100644 --- a/client/src/components/work-contracts/WorkRequests.jsx +++ b/client/src/components/work-contracts/WorkRequests.jsx @@ -37,7 +37,7 @@ function WorkRequests({ const [showEvidenceModal, setShowEvidenceModal] = useState(false); const [currentRequestId, setCurrentRequestId] = useState(); const [showViewRequestModal, setShowViewRequestModal] = useState(false); - const [viewRequestContent, setViewRequestContent] = useState(''); + const [viewRequest, setViewRequest] = useState({}); const { provider, account, @@ -133,8 +133,9 @@ function WorkRequests({ }, [workContract, account, currentRequestId]); const handleShowViewRequestModal = async (request) => { - const { content } = await Post.read(request.requestContentId); - setViewRequestContent(content); + const post = await Post.read(request.requestContentId); + console.log('show post modal', { post }); + setViewRequest(post); setShowViewRequestModal(true); }; @@ -142,7 +143,7 @@ function WorkRequests({ <> - +
{`Price: ${price} ETH`}
diff --git a/client/src/contract-addresses.json b/client/src/contract-addresses.json index 04f0bf0..c7b064f 100644 --- a/client/src/contract-addresses.json +++ b/client/src/contract-addresses.json @@ -3,7 +3,7 @@ "DAO": "0x65B0922fe7F0c4012aa38704071f26aeF6F22650", "Work1": "0x95673D8710A8eD59f8551e9B12509D6812e0623e", "Onboarding": "0xc6b3b8A641c52F7bC13a9D444e1f0759CA3b87b4", - "Proposals": "0x98550F017a8d7B9d759D59c1cA7B8D7B922e1dAf" + "Proposals": "0x859cd550d5b3BDdde4Cf0ca71D060f945E9E42DD" }, "sepolia": { "DAO": "0x8Cb4ab513A863ac29e855c85064ea53dec7dA24C", diff --git a/ethereum/contract-addresses.json b/ethereum/contract-addresses.json index 04f0bf0..c7b064f 100644 --- a/ethereum/contract-addresses.json +++ b/ethereum/contract-addresses.json @@ -3,7 +3,7 @@ "DAO": "0x65B0922fe7F0c4012aa38704071f26aeF6F22650", "Work1": "0x95673D8710A8eD59f8551e9B12509D6812e0623e", "Onboarding": "0xc6b3b8A641c52F7bC13a9D444e1f0759CA3b87b4", - "Proposals": "0x98550F017a8d7B9d759D59c1cA7B8D7B922e1dAf" + "Proposals": "0x859cd550d5b3BDdde4Cf0ca71D060f945E9E42DD" }, "sepolia": { "DAO": "0x8Cb4ab513A863ac29e855c85064ea53dec7dA24C", diff --git a/ethereum/contracts/DAO.sol b/ethereum/contracts/DAO.sol index 4d89864..3c44166 100644 --- a/ethereum/contracts/DAO.sol +++ b/ethereum/contracts/DAO.sol @@ -193,6 +193,7 @@ contract DAO is ERC20("Reputation", "REP") { // TODO: refund stakes // Callback if requested if (pool.callbackOnValidate) { + console.log("quorum not met, calling onValidate"); IOnValidate(pool.sender).onValidate( votePasses, false, @@ -268,6 +269,7 @@ contract DAO is ERC20("Reputation", "REP") { } // Callback if requested if (pool.callbackOnValidate) { + console.log("calling onValidate"); IOnValidate(pool.sender).onValidate( votePasses, true,